【发布时间】:2018-05-02 07:00:42
【问题描述】:
我有多个属性的类;
public class Employee
{
public string TYPE { get; set; }
public int? SOURCE_ID { get; set; }
public string FIRST_NAME { get; set; }
public string LAST_NAME { get; set; }
public List<Department> departmentList { get; set; }
public List<Address> addressList { get; set; }
}
有时这个对象会在任何属性中返回我的值
Employee emp = new Employee();
emp.FIRST_NAME= 'abc';
剩余值为空。没关系
但是,我如何检查对象属性中的所有值何时为空
喜欢string.IsNullOrEmpty() 对象?
目前我正在这样检查;
if(emp.FIRST_NAME == null && emp.LAST_NAME == null && emp.TYPE == null && emp.departmentList == null ...)
【问题讨论】:
-
您的对象有 6 个属性 - 其中一个甚至不能为空 - 这使得 5 个。您最好只检查每个是否为空,而不是一些复杂的基于反射的场景。你这样做的方式可以说是正确的方式。
-
在你的类中创建一个为你做这件事的函数怎么样?因此,您可以在需要时调用它。
-
您当前的支票既可靠又可读。您可能希望将其拆分为多行(每行一个检查),即使它只是一个巨大的条件。同样在几个版本之前,他们在 C#6 中添加了空条件运算符。对于单行检查,这些可能是更好的选择。 docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
like string.IsNullOrEmpty() for object ?只是为了澄清这里可能是的误解:null的对象与属性全部为null的对象不同。如果你不区分这两者,每当你谈论你的代码时,你就会面临很多误解。 -
@Flater 对此有很多误解,你能推荐任何好的阅读材料