<p>I have been asking myself this question for a long time now. Thought of posting it. C# doesn't support Multiple Inheritance(this is the fact). All classes created in C# derive out of 'Object' class(again a fact).</p>

<p>So if C# does not support Multiple inheritance, then how are we able to extend a class even though it already extends Object class?</p>

<p>Illustating with an example: </p>

<ol>
<li>class A : object - Class A created.</li>
<li>class B : object - Class B created.</li>
<li>class A : B - this again is supported. What happens to the earlier association to object.</li>
</ol>

<p>We are able to use object class methods in A after step 3. So is the turned to multi level inheritance. If that is the case, then</p>

<ol>
<li>class A : B</li>
<li>class C : B</li>
<li>class A : C - I must be able to access class B's methods in A. Which is not the case?</li>
</ol>

<p>Can anyone please explain?</p>

You're confusing mutliple inheritance with an inheritance tree.  You can inherit from something other than Object.  It's just that Object is sitting way up there at the top of your tree.  And someone can inherit your class, but because Object is still up there at the top that class will also inherit from object.  Your "Multi-level" inheritance is not multiple inheritance.
Multiple inheritance is when you inherit from two different trees, and .Net actually does support this after a fashion via interfaces.