相关疑难解决方法(0)

C#应该有多重继承吗?

我遇到过许多反对在C#中包含多重继承的论据,其中一些包括(除了哲学论证):

  • 多重继承过于复杂,而且往往含糊不清
  • 这是不必要的,因为接口提供类似的东西
  • 如果接口不合适,组合是一个很好的替代品

我来自C++背景,错过了多重继承的力量和优雅.虽然它不适合所有软件设计,但在某些情况下很难否认它在接口,组合和类似的OO技术上的实用性.

是否排除了多重继承,说开发人员不够聪明,不能明智地使用它们,并且在它们出现时无法解决这些复杂问题?

我个人欢迎将多重继承引入C#(也许是C##).


附录:我很想知道来自单一(或程序背景)与多重继承背景的回复.我经常发现,没有多重继承经验的开发人员通常会默认使用多继承是不必要的参数,因为他们没有任何关于范例的经验.

c# inheritance multiple-inheritance

54
推荐指数
9
解决办法
1万
查看次数

为什么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)

是否有任何理由说微软没有在该语言中添加此功能?

c# generics constructor

2
推荐指数
2
解决办法
785
查看次数