我想在 .net 中创建一个日期时间常量,但收到错误消息
const DateTime dt = Convert.ToDateTime("02/02/2014");
'System.DateTime' 不能声明为 const。
即使您可以将a 声明DateTime
为 const (您不能,正如其他答案所表明的那样),您也必须使用编译时常量作为值 - 而且DateTime.Now
肯定不是编译时常量。
这是有效的:
static readonly DateTime dt = DateTime.Now();
请注意,这将是“无论何时运行该类型的类型初始化程序”。这很少是一个特别有用的值,除非你确保它在启动时被初始化,假设这是你想要测量的......
DateTime 不是 C# 语言中的本机类型 - 它是来自 .Net 库的结构。
在 C# 中,您只能从本地语言类型创建 const,并且只能使用可以在编译时计算的值来初始化它们。DateTime.Now 无法在编译时计算。
(您可以与 const 一起使用的唯一引用类型是字符串,这是因为字符串是经过特殊处理的。)
请参阅http://msdn.microsoft.com/en-gb/library/e6w8fe1b%28v=vs.71%29.aspx