您在 C# 中寻找的词是“const”:
const int SOMETHING = 10;
请注意,SIZE 也应该是常数。
此外,常量只能是 int、bool、string、char 等类型(仅限基本类型)。
所以如果你想要别的东西,比如数组或类,你可以这样做:
static readonly int[] PRED = new int[this.Nf];
Static Readonly 在逻辑上完全是 const 的意思,只是它在后台的定义略有不同,这使您可以更自由地使用它。(当你可以 - 你应该定义常量而不是静态只读的)
数组本身在运行期间不会更改,因此您将无法执行此操作:
PRED = new int[3]; // Error
PRED = null; // Error
PRED = PRED; // Error
但是您可以更改 PRED 数组内部的值:
PRED[0] = 123;
如果你想拥有一个只读集合,你可以使用 ReadOnlyCollection 对象!如果您还希望该对象是常量,则可以使用 static-readonly 组合(不能使用常量,因为它是一个类),您将获得:
static readonly ReadOnlyCollection<int> PRED = new ReadOnlyCollection<int>(new[] {1, 2, 5, 6});
然后 PRED 将始终是 PRED,并且总是大小为 4,并且总是包含 1、2、5、6。
PRED = PRED; // Error (static readonly)
PRED = null; // Error (static readonly)
PRED[1] = 0; // Error (ReadOnlyCollection enforces readonly on the elements)
int i = PRED[1]; // Still works, since you aren't changing the collection.