在C#中,值类型可以装箱,这会导致某些比较问题,特别是针对不同类型.示例:2m == 2Lreturn true,但(object)2m == (object)2L返回false.我的问题是:是否有可能编写一个比较方法来获取两个对象(盒装值)参数并true在示例中返回?它必须适用于任何值类型组合,并且==如果值是未装箱的,则具有与运算符相同的行为.谢谢!
我建议dynamic用于那项任务.
object o1 = 2m;
object o2 = 2L;
if ((dynamic)o1 == (dynamic)o2) { Console.WriteLine("Works like charm"); }
Run Code Online (Sandbox Code Playgroud)
但是,我并不完全了解dynamic关键字的所有含义,所以要小心!
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |