假设我有以下完全没有意义的代码:
object val1 = 1;
object val2 = 1l;
下面将返回 false,因为两个装箱对象不相同,因为它们具有不同的类型:
val1 == val2
这同样适用于:
val1.Equals(val2)
或者:
Object.Equals(val1, val2)
考虑到我 不知道运行时 的类型(因此无法强制转换),以与以下相同的方式比较这些的最简单方法是什么:
1 == 1l;
换句话说,我如何获得基于两个盒装数字的比较值?
最佳答案
尝试使用 dynamic 关键字。它将对象解析为您的值类型,以便您可以使用 == 运算符并比较真实值:
(dynamic)val1 == (dynamic)val2
关于.net - 如何在 .NET 中比较两个盒装数字的相等性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4207269/