В чем разница между Init-Only и ReadOnly в C# 9?C#

Место общения программистов C#
Ответить
Anonymous
 В чем разница между Init-Only и ReadOnly в C# 9?

Сообщение Anonymous »

Я изучаю новые возможности C# 9, которые скоро будут выпущены. Вместе с ним вводятся свойства, доступные только для инициализации.
Одним большим ограничением сегодня является то, что свойства должны быть изменяемыми, чтобы инициализаторы объектов работали: они функционируют, сначала вызывая конструктор объекта ( по умолчанию, в данном случае без параметров), а затем назначаем его установщикам свойств.
Свойства, доступные только для инициализации, исправляют это! Они вводят метод доступа init, который является вариантом метода доступа set, который можно вызвать только во время инициализации объекта:

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

public class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
При таком объявлении приведенный выше клиентский код по-прежнему допустим, но любое последующее присвоение свойствам FirstName и LastName является ошибкой. Что означает эта строка? Если ReadOnly делает то же самое, тогда какой смысл в свойстве Init-Only?

Подробнее здесь: https://stackoverflow.com/questions/623 ... -c-sharp-9
Ответить

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

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

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

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

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