I’ve seen some discussion on why c# does not implement multiple inheritance but very little as to why it isn’t supported in vb. I understand that both c# and vb are compiled down to intermediary language and so they both need to share similar restrictions.
The lack of multiple inheritance in VB seems to have been given as one reason for the lack of the feature in dot net. Does anyone know why VB doesn’t support multiple inheritance? I’m hoping for a bit of history lesson and discussion on why this was never considered for VB.
It isn’t implemented in the CLR so it isn’t available in CLS-compliant languages like VB.NET. There seems to be a general consensus among engineers at Microsoft, including Anders Hejlsberg, C# lead architect, that the potential benefits are not worth the cost and complexity of implementation. Chris Brumme, a distinguished engineer on the .NET team at the time, said this back in 2004:
[Link]
Bottom line is I would not hold my breath.
For now, you can gain some if not most of the benefits of multiple implementation inheritance by inheriting multiple interfaces and delegating the implementation to a contained class instance. It’s a little more work but it is the best we have right now.
I should also note that I wrote C++ full-time for several years and only leveraged multiple inheritance a couple of times in my own designs. It was handy when I needed it, but honestly I don’t find myself wishing for it in C# very often.