我的struct
中是否可以有一个浮点常量private struct MyStruct
{
public const float[] TEST = new float[] {1,2};
}
前面是我的第一个猜测,但不起作用。
有什么想法吗?
答案 0 :(得分:4)
没有。但你可以这样做:
private struct MyStruct
{
public static readonly IList<float> TEST = Array.AsReadOnly(new float[] {1,2});
}
不使用Array.AsReadOnly
表示人们无法使TEST
指向其他数组,但您指定的数组可能会更改其内容。
答案 1 :(得分:1)
不,你不能有一个const float []
最常用的是一些
的变量public static readonly float[] TEST = new float[] {1,2};
但是这个数组本身并不是一成不变的,所以你经常按照
的方式行事public static readonly IList<float> TEST = new ReadOnlyCollectioN(new float[] {1,2});
最后,最后一个选项是创建自己的float []的不可变表示,可以实例化并提供与float []相同的操作而不进行修改。
答案 2 :(得分:0)
常量初始值设定项必须是编译时常量
new float[] {1,2}
在运行时创建一个新对象,而不是编译时。但是,您可以将其设为静态只读字段,即
public static readonly float[] TEST = new...