C语言与装箱值类型的比较
示例
如果将值类型分配给类型变量,object则将它们装箱-值存储在a的实例中System.Object。与进行比较时==,可能会导致意外的后果,例如:
object left = (int)1; //int在对象框中 object right = (int)1; //int在对象框中 var comparison1 = left == right; //假
可以通过使用重载Equals方法避免这种情况,该方法将提供预期的结果。
var comparison2 = left.Equals(right); //真正
另外,也可以通过取消对left和right变量的装箱操作int来比较值:
var comparison3 = (int)left == (int)right; //真正