3

据我所知,"H" + 'i'产生一个常量字符串的连接。
我或 C# 错了吗?

代码 :

const string b = "H" + 'i';
// Error : The expression being assigned to 'b' must be constant

这算作错误还是功能?

4

2 回答 2

8

这是一个微妙之处。

'i'是一个字符文字。
将其添加到字符串涉及装箱转换(调用string operator +(string x, object y),如规范中所指定),这不是常量表达式。

有关更多信息,请参阅我之前的回答

于 2013-02-26T20:07:45.667 回答
0

也许 VS2010 错误将有助于定义它:

Constant initializer must be compile-time constant

所以 "H" + 'i' 是一个运行时值。

于 2013-02-26T20:09:01.097 回答