我有以下代码,应检查类的所有属性是否为null。我尝试了下面的代码,但它没有用。为什么?
答案 0 :(得分:6)
您可以创建一个属性IsInitialized
,在内部执行此操作:
public bool IsInitialized
{
get
{
return this.CellPhone == null && this.Email == null && ...;
}
}
然后只需检查属性IsInitialized
:
if (myUser == null || myUser.IsInitialized)
{ ... }
另一种选择是使用反射来走过并检查所有属性,但这对我来说似乎有些过分。此外,这使您可以自由地偏离原始设计(当您选择所有属性时,例如,一个属性应为null)。
答案 1 :(得分:0)
//NameSpace
using System.Reflection;
//Definition
bool IsAnyNullOrEmpty(object myObject)
{
foreach(PropertyInfo pi in myObject.GetType().GetProperties())
{
if(pi.PropertyType == typeof(string))
{
string value = (string)pi.GetValue(myObject);
if(string.IsNullOrEmpty(value))
{
return true;
}
}
}
return false;
}
//Call
bool flag = IsAnyNullOrEmpty(objCampaign.Account);