在结构中浮动[]

时间:2010-11-12 21:08:19

标签: c#

我的struct

中是否可以有一个浮点常量
private struct MyStruct
{
  public const float[] TEST = new float[] {1,2};
}

前面是我的第一个猜测,但不起作用。

有什么想法吗?

3 个答案:

答案 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...