【发布时间】:2015-05-06 13:22:23
【问题描述】:
基本上如标题所述,如果我这样做:
private const string TYPEOF_STRING = typeof(String).FullName;
为什么它给我的错误:
被赋值的表达式 'Cognitronics.Generic.CloudClient.TYPEOF_STRING' 必须是常量
编辑:
似乎我们在这里和 Habib 链接的线程中都有相互矛盾的答案。在这里,每个人都说它不是编译时间常数,而在另一个线程中,每个人都说它是。这让我更加困惑,所以我想重新问一下它是什么?
【问题讨论】:
-
嗯...这不是很明显吗?
-
@Robert,显然不是,否则为什么 OP 会问他的问题?将“const”关键字限制为仅编译时的常量是特定于语言的功能。
-
@Robert,其实不是,
typeofis resolved at compile time -
@Habib 如果在编译时解决了,为什么它不起作用呢?还是我很傻?
-
@habib typeof(T) 不是编译时间常数。这取决于。
Type foo<T>(){ return typeof(T); }
标签: c#