5

我想从另一个字符串变量创建 const 字符串。例如接下来的两个代码片段无法编译

1)

string str = "111";
const string str2 = str;

2)

string str = "111";
const string str2 = new string(str.ToCharArray());

这导致

Error: The expression being assigned to 'str2' must be constant 

有没有办法从字符串变量创建一个 const 字符串?

4

4 回答 4

8

简而言之 - 不。

分配给 a 的值const必须是编译时间常数。

您可以使用readonly而不是const,这将让您更改变量的值 - 您将只能更改构造函数中的引用。

于 2012-12-13T14:16:41.207 回答
2

使用只读关键字。

string str = "111";
readonly string str2 = str.ToCharArray();
于 2012-12-13T14:17:58.310 回答
2

常量是在编译时评估的,所以你想要的是不可能的。但是,您可以用 readonly 替换常量,例如:

string s = "Hello";
readonly string t = s + " World";
于 2012-12-13T14:18:50.880 回答
1

没有。因为const变量在编译时起作用。

大家同意使用readonly

readonly string t = s + " World";
于 2012-12-13T14:18:18.623 回答