我有以下代码给出警告
可能出现意外的参考比较;要进行值比较,请将左侧转换为类型“string”`
if (lblStatus.Content == "ACTIVE")
{
//Do stuff
}
else
{
//Do other Stuff
}
我假设警告是因为lblStatus.Content
不一定总是字符串类型?
我已尝试使用以下各项来修复它,但我仍然收到警告
if (lblStatus.Content.ToString() == "ACTIVE")
if ((string)lblStatus.Content == "ACTIVE")
if (lblStatus.Content === "ACTIVE")
请有人解释一下我仍然收到警告的原因以及处理此问题的最佳实用方法?
该警告是因为编译时类型lblStatus.Content
is object
。因此运算符重载选择==(object, object)
重载只是一个参考身份比较。这与什么无关执行时间处理时间值的类型是。
您的第一个或第二个选项should不过已经修复了警告:
if (lblStatus.Content.ToString() == "ACTIVE")
if ((string)lblStatus.Content == "ACTIVE")
请注意,如果满足以下条件,第一个将抛出异常:lblStatus.Content
一片空白。我更喜欢第二种形式。
如果您认为此时仍然看到警告,我怀疑您尚未重建 - 或者您的构建中的某些内容仍然“脏”。全面重建绝对地应该删除警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)