In C#, value types can be boxed, which leads to certain comparison issues, specially for different types. Example: 2m == 2L returns true, but (object)2m == (object)2L returns false. My question is: is it possible to write a comparison method that gets two objects (boxed values) parameters and returns true in the example case? It has to work for any value type combination and have the same behavior as the == operator if the values were unboxed. Thanks!