如何在类中创建和初始化struct的静态只读数组?

时间:2015-11-06 17:04:20

标签: c# arrays static const

说我有像

这样的结构
public struct pair{ float x,y;}

我想在类中创建一个常量查找数组,它也是固定数。 像

这样的东西
public class MyClass{
    static readonly fixed pair[7] _lookup;
}

我不知道如何声明或初始化它(我在哪里设置每个的值?)。

2 个答案:

答案 0 :(得分:4)

您还可以使用静态构造函数

public struct pair
{
    float x, y;

    public pair(float x, float y)
    {
        this.x = x;
        this.y = y;
    }
}

public class MyClass
{
    public static readonly pair[] lookup;

    static MyClass()
    {
        lookup = new pair[7] { new pair(1, 2), new pair(2, 3), new pair(3, 4), new pair(4, 5), new pair(5, 6), new pair(6, 7), new pair(7, 8) };
    }
}

答案 1 :(得分:2)

使用类似于类的结构,因此您可以在定义上分配值

public struct Pair {public float x, y;}

public class MyClass
{
    public static readonly Pair[] _lookup = new Pair[]{ 
        new Pair(){x=1, y=2}, 
        new Pair(){x=1, y=2},
        new Pair(){x=1, y=2},
        new Pair(){x=1, y=2},
        new Pair(){x=1, y=2},
        new Pair(){x=1, y=2},
        new Pair(){x=1, y=2}
    };
}