Будет ли компилятор C# оптимизировать повторную оценку членов с телом выражения?C#

Место общения программистов C#
Anonymous
Будет ли компилятор C# оптимизировать повторную оценку членов с телом выражения?

Сообщение Anonymous »

Если я напишу следующее для определения члена класса:

Код: Выделить всё

public List Names => new() {
"Foo",
"Bar",
"Baz"
};
... насколько я понимаю, выражение оценивается каждый раз, когда осуществляется доступ к элементу, поэтому каждый раз будет создаваться новый экземпляр List. Будет ли компилятор C# оптимизировать это и создавать только один экземпляр, к которому будет осуществляться доступ каждый раз? Если нет, имеет ли значение использование следующего выражения коллекции?

Код: Выделить всё

public List Names => [
"Foo",
"Bar",
"Baz"
];
А если нет, то как я могу получить такой член класса, предоставляющий мне список значений, который не приводит к инициализации нового класса при каждом доступе к нему?

Подробнее здесь: https://stackoverflow.com/questions/784 ... n-bodied-m

Вернуться в «C#»