Что это значит, когда мы объявляем такую ​​собственность? - PullRequest
0 голосов
/ 14 июля 2020

Я использую веб-API, чтобы получить некоторые записи из базы данных и отправить их в приложение Blazor. Когда я объявляю переменную следующим образом:
public Employee Employee { get; set; } = new Employee();, она работает нормально.
Но если я объявлю это так:
public Employee Employee { get; set; }, я получу NullReferenceException ошибку.
Мне непонятно, что это значит, когда мы присваиваем переменной new Employee()

1 Ответ

0 голосов
/ 14 июля 2020
public Employee Employee { get; set; } = new Employee();

Это просто инициализирует свойство со значением всякий раз, когда создается объект вашего класса. Это будет то же самое, что добавить такую ​​строку в ваши конструкторы:

this.Employee = new Employee();

Если вы не инициализируете свойство каким-либо экземпляром Employee, тогда оно будет иметь значение null на дефолт. Таким образом, любая попытка получить или установить значение других свойств в свойстве Employee вызовет исключение нулевой ссылки.

obj.Employee.FirstName = firstName; // if .Employee never got set to anything, this fails
var firstName = obj.Employee.FirstName; // same here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...