title: C# 4.0: Can I use a Color as an optional parameter with a default value?
body: <pre><code>    public void log(String msg, Color c = Color.black)
      {
          loggerText.ForeColor = c;
          loggerText.AppendText("\n" + msg);
  
      }
  </code></pre>
  
  <p>This results in an error that c must be a compile-time constant.  I've read up on this a little and most examples are dealing with strings and ints.  I've figured out I can use the colorconverter class but I'm not sure it will be very efficient.  Is there a way to just pass a basic color as an optional parameter?</p>
  
  <pre><code>    public void log(String msg, String c = "Black")
      {
          ColorConverter conv = new ColorConverter();
          Color color = (Color)conv.ConvertFromString(c);
  
          loggerText.ForeColor = color;
          loggerText.AppendText("\n" + msg);
      }
  </code></pre>