运算符'=='不能应用于操作数System.Reflection.PropertyInfo和'int'

时间:2013-10-19 18:18:54

标签: c# reflection

这是用c#编写的一段代码,我被卡住了[编辑]:

foreach (var property in this.allProperties)
        {
            var propertyItself = element.GetType().GetProperty(property.GetType().Name);

            if (propertyItself.PropertyType != typeof(Int32))
            { continue; }

            if (propertyType == 0)
            { return false; }
        }

如果有人不这样做,可以帮助提供一些信息吗?提前谢谢!

1 个答案:

答案 0 :(得分:3)

在评估属性的之前,您需要调用PropertyInfo.GetValue方法

if (propertyItself == typeof (Int32))
{ 
    if((int) propertyItself.GetValue(element) == 0)
    { 
        return false; 
    }
}

您也可以考虑提高表达式的可读性,正如我上面仅通过 评估该类型等于整数一样。