Инициализация свойства в методе, вызываемом из конструктораC#

Место общения программистов C#
Ответить
Anonymous
 Инициализация свойства в методе, вызываемом из конструктора

Сообщение Anonymous »

Это не компилируется:

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

public class MyClass
{
private string Name { get; init; }

public MyClass()
{
MyMethod();
}

public void MyMethod()
{
Name = "Hello";
}
}
Я мог бы использовать частный набор, но это было бы слишком либерально.
Могу ли я добавить атрибут в MyMethod, чтобы сообщить компилятору, что не волнуйтесь, это вызывается только в конструкторах? И тогда компилятор сможет проверить каждый путь каждого конструктора, чтобы убедиться, что значение инициализировано правильно?
Как установить поле только для чтения в методе инициализации, который вызывается из конструктора? очень похожая проблема, но решение здесь не работает.

Подробнее здесь: https://stackoverflow.com/questions/798 ... onstructor
Ответить

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

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

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

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

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