我可以在C#4.0中指定默认的Color参数吗?
这是一个示例函数:
public void DrawSquare(int x, int y, Color boxColor = Color.Black) { //Code to draw the square goes here }
编译器不断给我错误: Default parameter value for 'boxColor'must be a compile-time constant
我试过了
Color.Black, Color.FromKnownColor(KnownColor.Black), and Color.FromArgb(0, 0, 0)
如何使Color.Black成为默认颜色? 另外,我不想使用字符串Black
来指定它(我知道它可以工作)。 我想要Color.Black
值。
Color.Black
是静态的,不是常量,所以不,你不能这样做。
要使用默认值,可以使参数为nullable( Color?
),如果为null,则将其设置为Black。
做这个:
void foo(... Color boxColor = default(Color)) { if(object.Equals(boxColor, default(Color))) boxColor = Color.Black; // ... }
保持简单有什么问题?
public void DrawSquare(int x, int y) { DrawSquare(x,y,Color.Black); } public void DrawSquare(int x, int y, Color color) { // Do your thing. }