System.Int32 contains… another System.Int32
I used reflection to inspect the contents of System.Int32 and found that it contains another System.Int32 . System.Int32 m_value; I don't see how that's possible. This int really is the "backing integer" of the one you have: if you box an int and use reflection to change the value of its m_value field, you effectively change the value of the integer: object testInt = 4; Console.WriteLine(testInt); // yields 4 typeof(System.Int32) .GetField("m_value", BindingFlags.NonPublic | BindingFlags.Instance) .SetValue(testInt, 5); Console.WriteLine(testInt); // yields 5 There's gotta be a rational