声明为字段的ValueTuple类型可以是可变的:
class Foo {
(int, int) bar = (0, 1);
}
或只读:
class Foo {
readonly (int, int) bar = (0, 1);
}
,并且此(im)可变性适用于每个成员。我希望它也可以扩展到const声明:
class Foo {
const (int, int) bar = (0, 1);
}
但是此语句无法编译。 在某些情况下,它是不受欢迎的功能,还是只是没有实现?
编辑 好的我现在明白了。我的问题基于这样一个假设:就关键字readonly而言,C#编译器对待ValueTuples的方式与其他类型不同。因此,如果已经是一个异常,为什么不为const另一个异常。但是,实际上,这种逻辑似乎适用于所有结构。所以这行不通:
class Foo {
readonly ExampleStruct field;
void Method() {
field.structField = 2;
}
}
struct ExampleStruct {
public int structField;
}