为什么不允许在.net中创建日期时间常量?

我想在.net中创建一个日期时间常量但是收到错误消息

const DateTime dt = Convert.ToDateTime("02/02/2014"); 

‘System.DateTime’不能声明为const。

DateTime不是C#语言中的本机类型 – 它是.Net库中的结构。

在C#中,您只能从本机语言类型创建consts,并且只能使用可在编译时计算的值初始化它们。 DateTime.Now无法在编译时计算。

(可以与const一起使用的唯一引用类型是字符串,这是因为字符串是专门处理的。)

请参阅http://msdn.microsoft.com/en-gb/library/e6w8fe1b%28v=vs.71%29.aspx

即使您可以DateTime声明为const(您不能像其他答案所指示的那样),您将不得不使用编译时常量作为值 – 而DateTime.Now肯定不是编译时常量。

这是有效的:

 static readonly DateTime dt = DateTime.Now(); 

请注意,这将是“无论何时类型初始值设定项运行”。 除非你确保它在启动时初始化,否则这很少是一个特别有用的值,假设你正在尝试测量…