Проверить нулевой объект - PullRequest
       4

Проверить нулевой объект

1 голос
/ 18 октября 2019

Чтобы проверить, не приходит ли модель в ноль или нет, я использую что-то вроде этого:

  if (model is null || !model.Any()) return this;

Но в последней конференции Microsoft я видел, как парни используют что-то вроде:

    if(model is { })

Iпопытайтесь использовать его, но всегда возвращайте true (если объект равен нулю или нет)

Так что мой вопрос. Есть ли новый способ проверить, не обнулилась ли модель? Что такое правильное использование скобок { }

Примечание: я гуглил по поводу этих скобок, но нашел что-нибудь. Привет

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Другой способ проверить NullOrEmpty - принудительно Count() к int?. Затем мы можем сравнить результат GetValueOrDefault с 0:

if((model?.Count).GetValueOrDefault() == 0) return this;

Как это работает:

  • Поскольку оператор ?. вернет null, еслилевая сторона равна null, а Count возвращает int, результат (model?.Count) равен Nullable<int>.
  • Метод GetValueOrDefault возвращает значение Count, если model не null, в противном случае возвращается default(int) (что 0).
  • Таким образомесли model равно null, условие возвращает 0
0 голосов
/ 18 октября 2019

Вы можете сделать общий метод расширения, чтобы проверить, является ли ваш объект нулевым или нет.

Попробуйте:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> source) { 
   return source?.Any() != true; 
}
...