Как проверить пустой объект?

В главном случае попробуйте изменить вызов GetList на:

Task.Run(() => bs.GetList());
-1
задан Keyur Ramoliya 13 July 2018 в 08:08
поделиться

2 ответа

Технически вы можете объединить Reflection и Linq в нечто подобное:

  Object obj = ...

  // All Empty (false or null) public properties of either string or bool type
  PropertyInfo[] emptyProps = obj
    .GetType()
    .GetProperties(BindingFlags.Instance | BindingFlags.Public)
    .Where(prop => prop.CanRead) // you may want to check prop.CanWrite as well
    .Where(prop => prop.PropertyType == typeof(bool) || 
                   prop.PropertyType == typeof(string))
    .Where(prop => object.Equals(prop.GetValue(obj), 
                                 prop.PropertyType.IsValueType 
                                   ? Activator.CreateInstance(prop.PropertyType) 
                                   : null))
    .ToArray();

Однако I сомневается , если вы должны это сделать: некоторые свойства не должны сохраняться :

   // Should be saved
   public string FirstName {...} 
   // Should be saved
   public string SecondName {...} 
   // Should NOT be saved
   public string Name {get {return $"{FirstName} {SecondName}";}}

Вы можете иметь разработанные критерии , какие данные следует сохранить, например в случае FirstName вы можете проверить (по крайней мере!) [/ ​​g8]

   // FirstName must be not null, not empty and not blank
   bool shouldSave = !string.IsNullOrWhiteSpace(FirstName);

Вот почему я предлагаю реализовать [класс g5] пользовательского свойства / method в классе:

   public class MyClass {
     ...
     // virtual: you may want to add some properties in a derived class 
     public virtual bool IsEmpty {
       get {
         return string.IsNullOrWhiteSpace(FirstName) &&
                string.IsNullOrWhiteSpace(SecondName) &&
                ...
       }
     } 
   }
2
ответ дан Dmitry Bychenko 17 August 2018 в 13:22
поделиться
  • 1
    Спасибо вам за ваши предложения. Я использую настраиваемое свойство, и пока оно работает как шарм. Спасибо большое! – Manish Dhariwal 13 July 2018 в 09:45

вы можете проверить его с помощью простой проверки

obj == null || obj == String.Empty

Это проверит как нулевое, так и пустое условие

Спасибо

0
ответ дан Jasbeer Singh 17 August 2018 в 13:22
поделиться
  • 1
    Для строк просто используйте String.IsNullOrEmpty(your_string). – Sebastian Hofmann 13 July 2018 в 08:27
  • 2
    Да, это хорошо использовать. – Jasbeer Singh 13 July 2018 в 08:28
Другие вопросы по тегам:

Похожие вопросы: