有没有办法创建静态只读数组,但值是在构建时计算的

Ped*_*o77 9 .net c# arrays static

有没有办法可以用readonly值创建静态数组,但是使用一些逻辑来创建它?让我试着解释一下:

我知道我可以这样做:

public static readonly int[] myArray = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

但是可以这样做:

public static readonly int[] myArray2 = 
{
    for (int i = 0; i < 256; i++)
    {
        float[i] = i;
    }
};
Run Code Online (Sandbox Code Playgroud)

编辑:我的问题的一个很好的解决方案:静态构造函数!http://msdn.microsoft.com/en-us/library/k9x6w0hc%28v=VS.100%29.aspx:d

Arn*_* F. 11

你能做的是:

public class YourClass
{
    public static readonly int[] myArray2 = null;

    static YourClass()
    {
        myArray2 = new int[256];
        for (int i = 0; i < 256; i++)
        {
            myArray2 [i] = i;
        }        
    }
}
Run Code Online (Sandbox Code Playgroud)

要么:

public static readonly int[] myArray2 = Enumerable.Range(0, 255).ToArray();
Run Code Online (Sandbox Code Playgroud)