Using an optional parameter of type System.Drawing.Color

I'm not a huge fan of optional parameters for cases like this at all. IMO the best use case for optional parameters is interop with COM, where optional parameters are used quite a bit. Situations like these are one of the reasons why (I would guess) that optional parameters didn't make it into the language until 4.0.

Instead of creating an optional parameter, overload the function like so:

public myObject(int foo, string bar) : this (foo, bar, Color.Transparent) {};

public myObject(int foo, string bar, Color RGB) {
...
}

Nullable value types can be used to help in situations like this.

public class MyObject 
{
    public Color Rgb { get; private set; }

    public MyObject(int foo, string bar, Color? rgb = null) 
    { 
        this.Rgb = rgb ?? Color.Transparent;
        // .... 
    } 
}

BTW, the reason this is required is because the default value is populated at the call point during compile and static readonly values are not set until runtime. (By the type initializer)