Я часто делаю это при необходимости, чтобы исключить исключение нулевого указателя :
// Example #1
if (cats != null && cats.Count > 0)
{
// Do something
}
В # 1 я всегда просто предполагал, что cats != null
должен быть первым, потому что порядок операций оценивается слева направо.
Однако в отличие от пример # 1, теперь я хочу сделать что-то, если объект null
или Count
ноль, поэтому я использую логическое ИЛИ вместо И:
// Example #2
if (table == null || table.Rows == null || table.Rows.Count <= 0)
{
// Do something
}
Имеет ли значение порядок логических сравнений?Или я могу также изменить порядок и получить те же результаты, как в примере № 3?
// Example #3
if (table.Rows.Count <= 0 || table.Rows == null || table == null)
{
// Do something
}
(кстати, я понимаю, что могу переписать № 2, как показано ниже, но ядумаю, что это грязно, и мне все еще интересно, операторы ИЛИ)
// Example #4
if (!(table != null && table.Rows != null && table.Rows.Count > 0))
{
// Do something
}