Size: a a a

2021 April 30

K

Katz in pro.net
Если просто заменить class на record то много не поменяется со стороны nullable
источник

W

WhiteBlackGoose in pro.net
И не только сторы, но и Equals, GetHashCode, и with, и Deconstruct. А при чем тут nullable?
источник

K

Katz in pro.net
В конструкторе надо сетать эти поля
источник

V

Vyacheslav in pro.net
при том, что в конструкторах record'а будет проверяться nullability, а просто так в классе без конструктора оно всегда будет ругаться, что там будет null, хотя, если класс конструируется как new A { mystring = "aaa" } «— проверяться, сконструировался ли класс с null значением в не-nullable типах, должно здесь, а не в объявлении класса.

ИМХО
источник

V

Vyacheslav in pro.net
конструктора нет. Не поэтому ли во всём генерируемом коде от EF проставляется #nullable disable?
источник

W

WhiteBlackGoose in pro.net
А init; get; не порешает твою проблему?
источник

K

Katz in pro.net
Нет
источник

V

Vyacheslav in pro.net
nullable warning'и его игнорируют
источник

DP

Denis Petukhov in pro.net
Конструктор есть, просто заполнение через рефлекшн
источник

DP

Denis Petukhov in pro.net
А так по дефолту там нуллы же
источник

V

Vyacheslav in pro.net
да, нуллы. Он они там появятся, только если позвать просто new X(); без явного присваивания после конструирования, типа new X() { Y = "text" }

Т.е. предупреждения про nullable лучше бы было показывать по месту создания X, а не в объявлении X.
источник

V

Vyacheslav in pro.net
(имхо)
источник

IC

Ilya L Che in pro.net
init не заставляет при инициализации задавать значение.
источник

DP

Denis Petukhov in pro.net
Есть вариант написать = "" например
источник

V

Vyacheslav in pro.net
это не решает проблемы, что кто-то забудет проинициализировать значение. И лучше уж string.Empty
источник

IC

Ilya L Che in pro.net
Отключай #nullable или пиши каждый раз = default!
источник

IC

Ilya L Che in pro.net
А вообще лучше рекорды с конструкторами использовать, конечно.
источник

V

Vyacheslav in pro.net
к ним ещё привыкнуть нужно: научиться отличать от функций с кучей параметров.
источник

V

Vyacheslav in pro.net
и у такого вида setter'ов не будет
источник

DP

Denis Petukhov in pro.net
То что с дто проблемс это было понятно изначально
источник