条件不起作用

时间:2015-09-07 11:05:10

标签: c# asp.net

它不起作用: -

if(keyval.Value == "menu") // false

但这有效: -

if(keyval.Value.ToString() == "menu") // true

这两者之间有什么区别。

为什么第一个条件不起作用?

1 个答案:

答案 0 :(得分:5)

据推测,keyval.Value的类型为object。这意味着不是按值比较两个字符串,而是通过引用比较它们 - 它对于具有相同值的两个字符串完全有效,是一个不同的实例。

进行比较的正确方法是

if((string)keyval.Value == "menu") 

如果值始终是字符串。或者只是避免将string存储为object s:)