2011-05-19 39 views
1

为什么这会返回一个错误?如何显式初始化枚举数组[C#]

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() 
    { 

    } 
} 

我想给它的第一种方式,所以我可以初始化分离的构造。这是如何正确完成的?

+0

使用ReSharper的http://www.jetbrains.com/resharper/ – bevacqua 2011-05-19 23:58:37

回答

8

使用以下语法:

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

或者更好的是,只是'new []'而不是'new MyEnum []'。 – 2011-05-19 22:48:54

+0

我仍然认为'new MyEnum []'更清晰。尽管我到处使用'var'。 – GvS 2011-05-20 06:33:56