ChangeType 不起作用后比较值
Comparing values after ChangeType not working
我遇到问题,更改类型(在本例中为 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;
}
}
谢谢!
我遇到问题,更改类型(在本例中为 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;
}
}
谢谢!