【发布时间】:2015-05-10 10:04:48
【问题描述】:
我有一个问题,在更改类型(在本例中为 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;
}
}
谢谢!
【问题讨论】:
-
把你的作品看成文本会更好..
标签: c# if-statement integer comparison changetype