オブジェクトを返すメソッドがあります。オブジェクトは、文字列、数値、ブール値など、さまざまなデータ型のいずれかです。ある時点で、このメソッドから返された 2 つの値が等しいかどうかを比較する必要があります。比較するためにさまざまな数値タイプが必要なため、==
代わりに使用しています。- 文字列と数値に対しては正常に機能していますが、ブール値を比較すると何らかの理由で機能しなくなります。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
}