Here are my points to start with.
- I cannot guarantee that my structs are initialized with my default constructor.
- I cannot define a simple " == " operator overload on an interface.
- I cannot return const objects, which destroys encapsulation.
- I cannot define a simple generic Sum function because of operator + not working on generic type T.
Edit: Imagine you need to create a small type or maybe type hierarchy - double with accuracy and with different roundings. You would then understand why I need all these..
- I cannot decide where to place my instances: ref- or value-placement
- I don't have multiple inheritance which is the least pain (when you are not in one of those MarshalByRef situations...)!