title: C# Why does passing of an class instance to a method which accepts object as parameter and boxing it back work
body: <p>For example lets consider the following example.</p>
  
  <pre><code> class A
   {
    int i;
    string j;
    double t;
   }
  
   A a =new A();
   MethodCalled(a);
  
   void Method(object a)
   {
    A newA = a as A; // This will work even though Class A is down casted to System.Object
   }
  </code></pre>
  
  <p>Can somebody please help me understand this. A link reference to explanation ? </p>
  
  <p>Thanks</p>