检查类的所有属性是否为null

时间:2015-01-28 08:07:56

标签: c# class

我有以下代码,应检查类的所有属性是否为null。我尝试了下面的代码,但它没有用。为什么? enter image description here

2 个答案:

答案 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);