在 C# 中定义常量

Defining constants in C#

本文关键字:常量 定义      更新时间:2023-10-16

我是C#开发人员的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# 允许您使用 const 关键字创建多个内置类型的常量。

常量可以是数字、布尔值、字符串或空引用。

这里有一个小例子:

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# 命名准则建议避免全大写命名。

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

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。

此外,您将获得int x = data[LEN]; System.IndexOutOfRangeException,因为您请求的是第 20 个索引,而数组中没有这样的索引

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