我有一个方法返回一个对象,该对象可以是多种数据类型之一,包括字符串、数字和布尔值;在某些时候,我需要比较这个方法返回的两个值是否相等。我使用
==
而不是Equals()
因为我需要比较不同种类的数字-即3 == 3.0
-对于字符串和数字来说这很好用,但是对于某些原因当我比较布尔值时它失败了。
最好的解决方法是什么?如果没有其他解决方案,我希望不必检测类型并强制转换为bool。
我的代码大致如下:
private object GetValue() {
// does some stuff, returns either a boolean, string or number value
}
var value1 = GetValue();
var value2 = GetValue();
if (value1 == value2) {
// do something
}
==
对你来说行不通。句号。(object)"a" ==new String(new[]{'a'})
是假的。 - SLaks