Несколько причин, по которым значение свойства может быть равно null даже после присваивания:
- Отсутствие корректной разметки свойства атрибутом AllowNull. pvs-studio.ru Если не разметить свойство этим атрибутом, компилятор выдаст предупреждение, когда запишет в него значение null. pvs-studio.ru
- Инициализация поля в конструкторе. ru.stackoverflow.com Во время работы конструктора значение свойства равно null, потому что его ещё никто не установил. ru.stackoverflow.com
- Использование методов, которые выбрасывают исключения. pvs-studio.ru Компилятор не всегда может понять, что выполнение программы будет завершено после вызова такого метода. pvs-studio.ru Если метод выбрасывает исключение, выполнение не дойдёт до участка кода с присваиванием, и в момент присваивания переменная не будет равна null. pvs-studio.ru
Чтобы избежать проблем, рекомендуется использовать атрибут AllowNull для корректной разметки свойств, а также проверять на null перед присвоением значения. pvs-studio.ru learn.microsoft.com