它不起作用: -
if(keyval.Value == "menu") // false
Run Code Online (Sandbox Code Playgroud)
但这有效: -
if(keyval.Value.ToString() == "menu") // true
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别.
为什么第一个条件不起作用?
据推测,keyval.Value有一种类型object.这意味着,不是按值比较两个字符串,而是通过引用比较它们 - 并且对于具有相同值的两个字符串来说它是完全有效的不同实例.
进行比较的正确方法是
if((string)keyval.Value == "menu")
Run Code Online (Sandbox Code Playgroud)
如果值始终是字符串.或者只是避免将strings 存储为objects :)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |