我在多个类中使用了一些全局数组,它们的大小都相同。目前,我已经硬编码了所有它们的大小,我读到这是因为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)

最佳答案

为此,必须将arraySize设置为常量(或静态的,但此处首选常量)。只有这样,您才可以引用它。

private const int arraySize = 5;


其他字段是静态的,因此您不能使用实例成员对其进行初始化。对于“为什么是const而不是静态的”:您不希望有人在数组初始化后更改值。如果您的逻辑依赖于该变量,则可能会遇到错误的代码。

关于c# - C#如何在启动时设置全局数组的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38609313/

10-11 18:28