我需要比较两个变量以确定它们是否相同。这些变量被转换为“对象”并且可以分配给任何 .NET 类型。
我遇到的问题是它们是否都是数字。在它们具有相同值(例如它们都是 -1)但具有不同类型(例如一个是 Int32,另一个是 Int64)的情况下,object.Equals 返回 false。
是否有一种比较通用的方法可以忽略变量的类型而只查看数字值?
最佳答案
假设类型是盒装整数,所以你不能简单地 == 它们,你可能想使用 Convert.ToInt64将所有值转换为长整数,然后使用 == 比较它们。不过,如果您想支持 UInt64,则需要额外的逻辑。
关于c# - 当值相同但类型不同时比较两个变量(例如 Int16、Int32、Int64),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609315/