Как явно инициализировать массив перечислений [C #] - PullRequest
2 голосов
/ 20 мая 2011

Почему это возвращает ошибку?

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 ]

9 голосов
/ 20 мая 2011

Используйте следующий синтаксис:

    public Class1()
    {
        myEnum = new MyEnum[]
        {
            MyEnum.First,
            MyEnum.First,
            MyEnum.First
        };
    }
4 голосов
/ 20 мая 2011

Краткая запись может использоваться только при объявлении поля.

В противном случае необходимо использовать более длинную запись:

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

Подробнее об инициализаторах массива здесь: http://msdn.microsoft.com/en-us/library/aa664573(v=vs.71).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...