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