如何显式初始化枚举数组[C#]

时间:2011-05-19 22:39:08

标签: c# arrays enums

为什么会返回错误?

public class Class1
{
    public enum MyEnum
    {
        First,
        Second,
        Third
    }

    public MyEnum[] myEnum;

    public Class1()
    {
        myEnum = 
        {
            MyEnum.First,
            MyEnum.First,
            MyEnum.First
        };
    }
}

虽然没有:

public class Class1
{
    enum MyEnum
    {
        First,
        Second,
        Third
    }

    public MyEnum[] myEnum = 
    {
        MyEnum.First,
        MyEnum.First,
        MyEnum.First
    };

    public Class1()
    {

    }
}

我想第一种方式,所以我可以将初始化分离到构造函数。这怎么做得好?

2 个答案:

答案 0 :(得分:9)

使用以下语法:

    public Class1()
    {
        myEnum = new MyEnum[]
        {
            MyEnum.First,
            MyEnum.First,
            MyEnum.First
        };
    }

答案 1 :(得分:4)

短符号只能在声明字段时使用。

否则,必须使用更长的符号:

myEnum = new MyEnum[] { MyEnum.First };

在此处阅读有关阵列初始值设定项的更多信息:http://msdn.microsoft.com/en-us/library/aa664573(v=vs.71).aspx