我有一些全局数组,我在多个类中使用,它们都被赋予相同的大小,目前我已经硬编码了所有的大小,我读到这是因为C#可能没有按顺序初始化变量他们写的,你不能设置一个变量来设置他们的所有大小,有没有办法让一个变量来设置他们的所有大小?
我有什么:
public static Object[,] stocksObject = new Object[5,5];
public static double[] stocks = new double[5]; //array holding the stocks (prices)
我想要的是什么:
private int arraySize = 5;
public static Object[,] stocksObject = new Object[arraySize,arraySize];
public static double[] stocks = new double[arraySize]; //array holding the stocks (prices)
答案 0 :(得分:3)
为了做到这一点,你必须使arraySize
成为常数(或静态,但在这里更喜欢常数)。只有这样你才能被引用。
private const int arraySize = 5;
其他字段是静态的,因此您无法使用实例成员对其进行初始化。对于“为什么常量而不是静态”的原因,您不希望有人在数组初始化后更改值。如果你的逻辑依赖于那个变量,你最终可能会遇到错误的代码。