在 C# 中定义常量
Defining constants in C#
我是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# 中有许多数据结构允许您拥有动态大小数组/列表/字典...
相关文章:
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 我可以在运行时重新定义在 OpenCascade/OCCT 标头中定义的 c++ 静态常量吗?
- 在定义的函数中使用常量时出错
- 模板推导:为什么函数指针模板定义在常量和/或引用时不匹配?
- C++ 确保子类为常量提供自定义值
- 用矩阵将函数中的整数值替换定义的常量
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 将字符串文本常量定义为 char const* 和 wchar const*
- 为什么不建议使用宏符号常量定义一个固定长度的数组呢
- 我可以使用常量定义数组的长度,那么为什么 int d[b] 不起作用呢?
- 调用构造函数与将内联常量定义为默认参数
- 是否允许在常量定义的对象上丢弃 const 只要它没有实际被修改?
- 多个文件中的常量定义
- 常量定义和模板
- 如何在另一个命名空间中使用常量定义的外部
- 全局常量定义的顺序
- 将常量定义为函数会导致标头=坏主意
- 是一个宏,其变量总是用变量或常量定义