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