我在C#中编写了一个简单的泛型类.
class Foo<T>
{
public object O{get;set;}
public Foo(object o)
{
O=o;
}
}
Run Code Online (Sandbox Code Playgroud)
和另一个继承自它的类
class Bar:Foo<object>
{
public Foo(object o):base(o)
{ }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我是否可以避免在Bar课堂上编写那个构造函数,因为它根本没有什么特别之处.PS:构造函数中的参数是必需的.
Jon*_*eet 12
不,你不能.没有构造函数的继承.构造函数Bar 确实做了一些事情:它为基础构造函数提供了一个参数,使用它自己的参数作为该参数.没有办法自动完成.
编译器将自动为您提供的唯一构造函数相当于:
public Bar() : base()
{
}
Run Code Online (Sandbox Code Playgroud)
对于具体类或抽象类:
protected Bar() : base()
{
}
Run Code Online (Sandbox Code Playgroud)
......并且仅在您未明确提供任何其他构造函数时才提供.