我正在比较来自同一类的两个实例的一些属性值。
var vinst = prop.GetValue(workinginstance, null);
var vref = prop.GetValue(reference, null );
if ( vinst != vref) {
info = info + String.Format( "{0} differ", prop.Name );
valid = false;
}
我的测试类有两个字符串道具和一个int。 当我比较字符串值时,因为字符串的不变性,结果很好:字符串不同,相等失败,如果它们相同,则相等测试为真。 但是当代码比较两个int属性时,结果总是为false。在我看来,我需要某种形式的转换到PropertyInfo.GetType(),但不知道如何做到这一点。 任何帮助将不胜感激。
答案 0 :(得分:1)
我会改变你的比较部分所以它不使用!=而是等于函数,因为getvalue返回一个对象而不是一个特定的值
if (!vinst.equals(vref))