title: Base to Derived is possible(Boxing), But Derived to base gives run time exception, however that is equivalent to Unboxing
body: <p>Base to Derived is possible(Boxing). 
  But Derived to base gives run time exception, however that is equivalent to Unboxing.
  Why is it so </p>
  
  <pre><code>Base b = new Base();
  Child c = new Child();
  c = (child)b; // No compilation error but run time error
  
  object a;
  int i = (int)a; //No error Unboxing 
  </code></pre>
  
  <p>Is it possible because object is top class all value type or Ref type inherited by Object class.
   public int ConvertToINT(object obj)
          {
              int i = (int)obj;
              return Convert.ToInt32(obj);
          }</p>