Будет ли компилятор 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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