条件不起作用

App*_*ppu -5 c# asp.net

它不起作用: -

if(keyval.Value == "menu") // false
Run Code Online (Sandbox Code Playgroud)

但这有效: -

if(keyval.Value.ToString() == "menu") // true
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别.

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

Lua*_*aan 5

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

进行比较的正确方法是

if((string)keyval.Value == "menu") 
Run Code Online (Sandbox Code Playgroud)

如果值始终是字符串.或者只是避免将strings 存储为objects :)