C# 有2种不同的常量定义方式:编译时常量(compile-time) 和运行时常量(runtime)。所谓编译时常量,是以 const 关键字定义,所谓编译时是常量则以 readonly 关键字定义。
C# 规定参数的默认值必须是编译时能确定的常量值。
这些参数的类型可以是 C# 认定的基元类型。还可以包括枚举类型,以及能设为 null 的任何引用类型。
Color 这个枚举类属于运行时常量。
如果硬要写一个带默认值的函数,只能利用重写的方法,例如:
1 2 3 4 5 6 7 8 | 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