为什么DateTime.MinValue
和DateTime.MaxValue
不像int.MinValue
和int.MaxValue
那样常量?为什么C#
会这样做?
我试图看一下struct DateTime
,但是找不到任何初始化这些字段的构造函数。
答案 0 :(得分:3)
在.NET中,只有基本类型和字符串可以是常量。
我试图看一下结构DateTime,但找不到任何初始化这些字段的构造函数。
它们在适当的地方初始化: https://referencesource.microsoft.com/#mscorlib/system/datetime.cs,114
有趣的事实:
在C#中,您可以定义decimal
常量;但是,decimal
不是原始类型。在后台,这些“常量”也将被编译为具有特殊DecimalConstant
属性的静态字段: