If you would have done a search you would have find a lot of answer on the web.
By the way, a similar question was already asked here on CodeProject and have more complete answers :
Why C# does not support Multiple Inheritance ?[
^]
Given that multiple inheritance is hard to implement and have majors impacts on the implementation of virtual tables and cast and that it was already well known that multiple inheritance cause a lot of problems, it is easy to understand why it was not supported in C#.
Although C++ support it, a lot of people would recommand to avoid using it (except from "interface"). Almost any time multiple inheritance could be used, it would be preferable to reconsider the design and use single inheritance and write wrapper fonctions that forward them to an internal object for function that would be available from an additionnal base class under multiple inheritance.
This will reduce coupling and it also allows to vary the type subobject which is not possible with multiple inheritance.
Also each potential feature has some potential benefits and also a potential of being used. In some cases, it only simplify code and in other it allows to solve completly new problems. Finally each feature can have potential problems too.
Thus choosing which feature make part of language is a decision between the PRO and CON of having it.
In the case of multiple inheritance, we have a lot of CONs:
- Hard to implement.
- Seldom used.
- High coupling.
- High maintenance cost.
- High chance of being misused.
- In most case, alternate solutions are better (for ex. composition and implementing multiple interfaces).
- Potential impact on the whole system performance (more complex code for cast and type system).
- Make the language more complex.
- Can affect all language that target to .NET.
- ...