c# - Why calling some functions of the Object class, on a primitive type instance, need boxing? -
I've found that if I run the following lines of code. int i = 7; I.GetHashCode (); // where getHashCode () is the // function received from the system. Object No sparring has been done, but if I i Call GetType () (Function derived from the System.Object from the other GetHashCode () , , a boxing to Calling GetType () will not be possible, why it is not possible without boxing it is possible to call GetHashCode () , while without boxing, on the initial type of example The key here is to GetType () call The key here is that GetType () is not virtual and overrides Since a stat is effectively sealed , the structure can not be overridden at any more , hence runtime and compiler structure methods Which is overridden as a static call. If you type a straight (rare) you should all methods like ToString ( ) , equal) , GetHashCode () for this reason if you do not do this box Should Ona. However, GetType () can not be override, thus boxing is require...