如何在C#中声明常量数组?const的问题及可能的解决方案
大家好!我是一名C#初学者,在尝试声明常量数组时遇到了问题。我想创建一个字符串数组,该数组在程序执行过程中永远不应更改。我尝试这样做:
```csharp
public const string[] DaysOfWeek = { "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс" };
```
但编译器报错:"The expression being assigned to 'DaysOfWeek' must be constant"。我知道`const`只适用于简单类型(int, double, string),但不适用于引用类型(如数组)。然而,我确实需要常量行为——数组不可变且只初始化一次。
我看到可以使用`readonly`,但这与`const`不完全相同。使用`readonly`,数组可以在构造函数中创建,但其元素在初始化后仍然可以更改。例如:
```csharp
public readonly string[] DaysOfWeek = new string[] { "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс" };
```
但随后