我遇到的问题是,在更改类型(在本例中为int)后比较值不起作用:
在我看来(参见调试器),_pkValue
和_defaultValue
都是integers
,具有相同的值。
问题是,不应输入if语句,因为两个值均为0
。
我确定这是一件非常简单的事情,但我无法弄清楚。
编辑:代码
object pkVal = pks.First().Value.GetValue(this, null);
if (pkVal != null)
{
var defaultValue = TypeHelper.GetDefaultValue(pkVal.GetType());
var _pkValue = Convert.ChangeType(pkVal, pkVal.GetType());
var _defaultValue = Convert.ChangeType(defaultValue, pkVal.GetType());
if (_pkValue != _defaultValue)
{
canset = false;
}
}
解
object pkVal = pks.First().Value.GetValue(this, null);
if (pkVal != null)
{
var defaultValue = Simplic.TypeHelper.GetDefaultValue(pks.First().Value.PropertyType);
if (!pkVal.Equals(defaultValue))
{
canset = false;
}
}
谢谢!