No multiple inheritance in C#
Unlike e.g. C++ multiple inheritance is not supported by C#:

Example of realisation of a robot with multiple inheritance
The problem with multiple inheritance is that two superclasses may define different ways of doing the same thing, and the subclass has problems to choose which one to pick. Although this problem can be solved, more complex structures of this type easily lead to programming errors, as the experience with C++ showed. This difficulty is also known as diamond problem.
Although the realization of the above class diagram is very tempting it would a be a misuse of inheritance. Both associations are of type "Has-a" and not of type "Is-a"! For this reason, the robot should be implemented as described by the following class diagram:

The robot should be realized with has-an associations, because it has camera(s) and gun(s).
Anyway, long chaines of inherited concrete classes have an disadvantage as well:
Changes which are made in a superclass takes also effect in subclasses far below. This can be very confusing and causes a lot of programming errors. For this reason inheritance should not have been overused respectively misused. Again: Only "is-an" associations should be realized by inheritage!
- Class inheritance (previously described)
- Interface inheritance, also called subtyping.
In contrast, multiply inheritance of interfaces is possible.