据我所知,"H" + 'i'
的连接产生一个常量字符串
我还是C#错了?
代码:
const string b = "H" + 'i';
// Error : The expression being assigned to 'b' must be constant
这是否算作错误或功能?
答案 0 :(得分:7)
这是一个微妙的。
'i'
是一个 char 字面值
将它添加到字符串涉及一个装箱转换(调用string operator +(string x, object y)
,如规范中所指定的),这不是一个常量表达式。
有关详细信息,请参阅我的earlier answer。
答案 1 :(得分:0)
也许VS2010错误有助于定义它:
Constant initializer must be compile-time constant
所以“H”+'i'是运行时值。