【问题标题】:How to explicitly initialize array of enums [C#]如何显式初始化枚举数组 [C#]
【发布时间】:2011-05-19 22:39:08
【问题描述】:

为什么会返回错误?

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

    }
}

我想采用第一种方式,这样我就可以将初始化与构造函数分开。这是如何正确完成的?

【问题讨论】:

标签: c# arrays enums


【解决方案1】:

使用以下语法:

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

【讨论】:

  • 或者更好的是,只需new[] 而不是new MyEnum[]
  • 我还是觉得new MyEnum[]比较清楚。虽然我到处使用var
【解决方案2】:

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

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

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

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

【讨论】:

  • 链接失效
猜你喜欢
  • 2011-05-23
  • 1970-01-01
  • 2011-12-31
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多