Равно (элемент, ноль) или элемент == нольC#

Место общения программистов C#
Ответить
Anonymous
 Равно (элемент, ноль) или элемент == ноль

Сообщение Anonymous »


Является ли код, использующий статический Object.Equals для проверки значения null, более надежным, чем код, использующий оператор == или обычный Object.Equals? Не являются ли последние два уязвимыми для переопределения таким образом, что проверка на значение null не работает должным образом (например, возврат false, когда сравниваемое значение является null)?

Другими словами, это:

if (Equals(item, null)) { /* Сделать что-нибудь */ } более надежный, чем этот:

if (item == null) { /* Сделать что-нибудь */ } Лично я считаю, что последний синтаксис легче читать. Следует ли этого избегать при написании кода, который будет обрабатывать объекты, находящиеся вне контроля автора (например, библиотеки)? Следует ли всегда избегать этого (при проверке на ноль)? Это просто ерунда?
Ответить

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

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

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

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

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