我已经做了一些搜索,但还没找到。目前我正在使用:
class GlobalArrays
{
public static string[] words = { "Easy", "Medium", "Hard" };
public static Color[] backColors = { Color.LightGreen, Color.Orange, Color.Red };
}
哪种方法效果很好,但我不知道这是否是正确的方法。我看到全局变量是这样做的:
static class GlobalVars
{
const string SOMETHING = "LOL";
}
这应该是Microsoft批准的声明命名空间级别常量的方法,但是当我尝试使用数组时,它会抛出一个错误,说它们只能是string
类型。
static class GlobalArrays
{
public const string[] words = { "Easy", "Medium", "Hard" };
public const Color[] backColors = { Color.LightGreen, Color.Orange, Color.Red };
}
上面的代码不会编译,并说它们只能用null初始化,因为它们的类型不是string
。
答案 0 :(得分:3)
根据编译器:
除string之外的引用类型的const字段只能用null初始化。
我认为这与你接近的情况差不多:
private static readonly string[] words = { "Easy", "Medium", "Hard" };
public static IReadOnlyCollection<string> Words
{
get
{
return Array.AsReadOnly(words);
}
}