C# 函数参数默认值问题
代码如下:privatevoidPrint(stringmessage,Colorcolor=Color.White){}报错:“color”的默认参数值必须为编译时常量...
代码如下:
private void Print(string message, Color color = Color.White) {}
报错: “color”的默认参数值必须为编译时常量 展开
private void Print(string message, Color color = Color.White) {}
报错: “color”的默认参数值必须为编译时常量 展开
展开全部
C# 有2种不同的常量定义方式:编译时常量(compile-time) 和运行时常量(runtime)。所谓编译时常量,是以 const 关键字定义,所谓编译时是常量则以 readonly 关键字定义。
C# 规定参数的默认值必须是编译时能确定的常量值。
这些参数的类型可以是 C# 认定的基元类型。还可以包括枚举类型,以及能设为 null 的任何引用类型。
Color 这个枚举类属于运行时常量。
如果硬要写一个带默认值的函数,只能利用重写的方法,例如:
private void Print(string message)
{
Color color = Color.White;
}
private void Print(string message, Color color)
{
}
【附】C# 基元类型:
sbyte / byte / short / ushort /int / uint / long / ulong / char / float / double / bool / decimal /object / string
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询