在C#中定义常量

问题描述 投票:1回答:4

我是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# c++ const
4个回答
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建议避免全部大写命名。


1
投票

实际上你应该用它来实例化数组:

const int LEN = 20;
int[] data = new int[LEN];

0
投票

你可以做这样的事情

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.IndexOutOfRangeExceptionint x = data[LEN];,因为你要求第20个索引并且数组中没有这样的索引


-1
投票

您不应该使用常量来声明数组长度。此外,C#中有许多数据结构允许您拥有动态大小的数组/列表/字典...

© www.soinside.com 2019 - 2024. All rights reserved.