编程语言
首页 > 编程语言> > c# – 比较不同类型的盒装值

c# – 比较不同类型的盒装值

作者:互联网

在C#中,值类型可以装箱,这会导致某些比较问题,特别是针对不同类型.示例:2m == 2L返回true,但(object)2m ==(object)2L返回false.我的问题是:是否可以编写一个获取两个对象(盒装值)参数的比较方法,并在示例中返回true?它必须适用于任何值类型组合,并且如果值是未装箱的,则具有与==运算符相同的行为.谢谢!

解决方法:

我建议使用dynamic来完成这项任务.

object o1 = 2m;
object o2 = 2L;

if ((dynamic)o1 == (dynamic)o2) { Console.WriteLine("Works like charm"); }

但是,我并不完全了解动态关键字的所有含义,所以要小心!

标签:c,boxing
来源: https://codeday.me/bug/20190611/1215822.html