Равно (элемент, ноль) или элемент == ноль ⇐ C#
Равно (элемент, ноль) или элемент == ноль
Является ли код, использующий статический Object.Equals для проверки значения null, более надежным, чем код, использующий оператор == или обычный Object.Equals? Не являются ли последние два уязвимыми для переопределения таким образом, что проверка на значение null не работает должным образом (например, возврат false, когда сравниваемое значение является null)?
Другими словами, это:
if (Equals(item, null)) { /* Сделать что-нибудь */ } более надежный, чем этот:
if (item == null) { /* Сделать что-нибудь */ } Лично я считаю, что последний синтаксис легче читать. Следует ли этого избегать при написании кода, который будет обрабатывать объекты, находящиеся вне контроля автора (например, библиотеки)? Следует ли всегда избегать этого (при проверке на ноль)? Это просто ерунда?
Является ли код, использующий статический Object.Equals для проверки значения null, более надежным, чем код, использующий оператор == или обычный Object.Equals? Не являются ли последние два уязвимыми для переопределения таким образом, что проверка на значение null не работает должным образом (например, возврат false, когда сравниваемое значение является null)?
Другими словами, это:
if (Equals(item, null)) { /* Сделать что-нибудь */ } более надежный, чем этот:
if (item == null) { /* Сделать что-нибудь */ } Лично я считаю, что последний синтаксис легче читать. Следует ли этого избегать при написании кода, который будет обрабатывать объекты, находящиеся вне контроля автора (например, библиотеки)? Следует ли всегда избегать этого (при проверке на ноль)? Это просто ерунда?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как портативно заставить NAN * ноль давать ноль в конкретном выражении без ветвления?
Anonymous » » в форуме C++ - 0 Ответы
- 94 Просмотры
-
Последнее сообщение Anonymous
-