c# - 当值相同但类型不同时比较两个变量(例如 Int16、Int32、Int64)

标签 c# .net

我需要比较两个变量以确定它们是否相同。这些变量被转换为“对象”并且可以分配给任何 .NET 类型。

我遇到的问题是它们是否都是数字。在它们具有相同值(例如它们都是 -1)但具有不同类型(例如一个是 Int32,另一个是 Int64)的情况下,object.Equals 返回 false。

是否有一种比较通用的方法可以忽略变量的类型而只查看数字值?

最佳答案

假设类型是盒装整数,所以你不能简单地 == 它们,你可能想使用 Convert.ToInt64将所有值转换为长整数,然后使用 == 比较它们。不过,如果您想支持 UInt64,则需要额外的逻辑。

关于c# - 当值相同但类型不同时比较两个变量(例如 Int16、Int32、Int64),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609315/

相关文章:

派生类的 C# XML 序列化

c# - 在字符串中插入字符串

.net - 使用命令行编译强命名程序集

c# - 阻止 VS 将属性值放入 .Designer.cs 文件

c# - 无法从 ICollection 中删除最后一项

javascript - onclick和onclientclick web方法在onclick之后执行

.net - 如何在 Entity Framework 中使用外键作为复合主键的一部分?

.net - NHibernate:无法成功预加载

.net - 使用网站生成的电子邮件进行 UAC 测试

c# - 以编程方式获取 Entity Framework 6 中 POCO 之间的外键