Comparisons with boxed value types C# with Example



Comparisons with boxed value types C# with Example

If value types are assigned to variables of type object they are boxed - the value is stored in an instance of a 
System.Object. This can lead to unintended consequences when comparing values with ==, e.g.: 
object left = (int)1; // int in an object box 
object right = (int)1; // int in an object box 
var comparison1 = left == right; // false 
This can be avoided by using the overloaded Equals method, which will give the expected result. 
var comparison2 = left.Equals(right); // true 
Alternatively, the same could be done by unboxing the left and right variables so that the int values are 
compared: 
var comparison3 = (int)left == (int)right; // true 

0 Comment's

Comment Form

Submit Comment