我是C / C ++开发人员。
我需要做类似下面的事情,
#define LEN 20
int data[LEN];
由于C#不支持#define
,许多论坛建议声明一个const
变量。一个const
变量可能会帮助我在下面,但不是在上面。
for (int a = 0; a < LEN; a++)
{
x += data[LEN - a - 1];
}
那么,我如何将常量用于数组声明呢?
C#允许您创建几个内置类型using const
keyword的常量。
常量可以是数字,布尔值,字符串或空引用。
这是一个小例子:
public class Demo {
public const int Length = 20;
public void Main(string[] args) {
var data = new int[Length];
for (var i = 0 ; i != Length ; i++) {
data[i] = 2*i + 3;
}
}
}
注意:C# naming guidelines建议避免全部大写命名。
实际上你应该用它来实例化数组:
const int LEN = 20;
int[] data = new int[LEN];
你可以做这样的事情
static readonly int LEN = 20;
static void Main(string[] args)
{
int[] data = new int[LEN];
for (int a = 0; a < LEN; a++)
{
int x = data[LEN];
}
}
请注意,该日期数组将默认初始化为0。
另外,你会得到System.IndexOutOfRangeException
为int x = data[LEN];
,因为你要求第20个索引并且数组中没有这样的索引
您不应该使用常量来声明数组长度。此外,C#中有许多数据结构允许您拥有动态大小的数组/列表/字典...