是否可以写出类似于下面的内容?
public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
是否可以写出类似于下面的内容?
public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
当前回答
作为一种替代方法,要解决使用只读数组可以修改元素的问题,可以使用静态属性。(单个元素仍然可以更改,但这些更改只会在数组的本地副本上进行。)
public static string[] Titles
{
get
{
return new string[] { "German", "Spanish", "Corrects", "Wrongs"};
}
}
当然,这不是特别有效,因为每次都会创建一个新的字符串数组。
其他回答
我相信你只能让它只读。
可以将数组声明为只读数组,但请记住,可以更改只读数组的元素。
public readonly string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
...
Titles[0] = "bla";
可以考虑像Cody建议的那样使用enum或IList。
public readonly IList<string> ITitles = new List<string> {"German", "Spanish", "Corrects", "Wrongs" }.AsReadOnly();
作为一种替代方法,要解决使用只读数组可以修改元素的问题,可以使用静态属性。(单个元素仍然可以更改,但这些更改只会在数组的本地副本上进行。)
public static string[] Titles
{
get
{
return new string[] { "German", "Spanish", "Corrects", "Wrongs"};
}
}
当然,这不是特别有效,因为每次都会创建一个新的字符串数组。
为了我的需要,我定义了静态数组,而不是不可能的const,它工作: 公共静态字符串[]title ={"德语","西班牙语","纠正","错误"};
数组可能是一种只能在这里求值的东西 运行时。常量必须在编译时求值。尝试使用"readonly" 而不是"const"。