我遇到过许多反对在C#中包含多重继承的论据,其中一些包括(除了哲学论证):
我来自C++背景,错过了多重继承的力量和优雅.虽然它不适合所有软件设计,但在某些情况下很难否认它在接口,组合和类似的OO技术上的实用性.
是否排除了多重继承,说开发人员不够聪明,不能明智地使用它们,并且在它们出现时无法解决这些复杂问题?
我个人欢迎将多重继承引入C#(也许是C##).
附录:我很想知道来自单一(或程序背景)与多重继承背景的回复.我经常发现,没有多重继承经验的开发人员通常会默认使用多继承是不必要的参数,因为他们没有任何关于范例的经验.
使用C#Generics,您可以拥有这样的类:
class Foo<T> where T:new() {}
Run Code Online (Sandbox Code Playgroud)
这意味着类型T应该有一个没有参数的构造函数.如果我们能够:
class Foo<T> where T : new(string)
{
private T CreateItem()
{
string s="";
return new T(s);
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何理由说微软没有在该语言中添加此功能?