Я пытаюсь очистить свой код для инициализации статических переменных readonly.Как инициализировать статическую переменную readonly с помощью анонимного метода?
Оригинал:
public static readonly List<int> MyList;
//Initialize MyList in the static constructor
static MyObject() { ... }
Я решил очистить его, потому что CodeAnalysis сказал, что не следует использовать статический конструктор (CA1810).
Cleanup:
public static readonly List<int> MyList = GetMyList();
//Returns the list
private static List<int> GetMyList() { ... }
Я действительно не как дополнительный метод, поэтому я решил попробовать, чтобы заставить его быть все инлайн, но это не будет работать. Я не уверен, что я делаю неправильно здесь ...
public static readonly List<int> MyList =
() =>
{
...
return list;
};
Я попытался взять код в методе GetMyList()
и поместить его в анонимный делегат возвращает список, чтобы назначить, но он говорит, я Я пытаюсь преобразовать delegate
в List<int>
?
Это довольно странно, может быть, лучше сохранить его в стандартном методе? – michael
@michael Возможно - зависит от того, что вы считаете более читаемым и поддерживаемым. Постоянны ли эти значения? Не могли бы вы использовать 'public static readonly Список MyList = новый Список {1, 2, 3};'? –
Нет, есть нечто большее, чем в противном случае, в противном случае это было бы очень легко. – michael