есть ли разница между:
if (myObject != null && myObject.someint == 0)
{
// do something
}
и
if (myObject != null)
{
if (myObject.someint == 0)
{
// do something
}
}
Я всегда думал, что он оценивает первое условие, и если ложно, он пропускает оценку второго. Однако я получил ошибку во время выполнения нулевой ссылки. myObject
был нулевым, и он пытался проверить myObject.someint
Объект может быть изменен извне, это тот случай, когда он проверял первое условие существования объекта, но когда он перешел к следующему условию, что-то уничтожило ссылку в myObject?
если это последнее, то любого способа избежать (на мой взгляд, оба вышеуказанных способа выполнения проверки if одинаковы). Единственное, что я могу себе представить, это try/catch