We study the following program: i == j is value comparison, and as such the value of i == j is true. First notice that object is an alias for System.Object. The expression m == n compares references because the two 5-values are boxed when
assigned to values of a reference type, see the section about boxing and unboxing. The == operator in m == n is determined by the static type of m and n, namely object. For m and n of type object, == will lead to comparison of references. m and n reference two different objects (which hold the same value).
Therefore the value of the boolean expression m == n is false.using System;
class WorderingAboutEquality{
public static void Main(){
int i = 5,
j = 5;
object m = 5,
n = 5;
Console.WriteLine(i == j);
Console.WriteLine(m == n);
}
}