所有代码示例总是使用base(),如下所示
class A
{
public A()
{
Console.Writeline("A");
}
}
class B : A
{
public B():base() {}
}
Run Code Online (Sandbox Code Playgroud)
例如http://msdn.microsoft.com/en-us/library/hfw7t1ce%28v=vs.71%29.aspx
而正如我最近发现的那样
class A
{
public A()
{
Console.Writeline("A");
}
}
class B : A
{
public B() {}
}
Run Code Online (Sandbox Code Playgroud)
还打印A.
问 - 它是一个新的"特性"还是不好的形式,不在派生类构造函数中调用base()并且会增加我的坏业力并导致以后出现问题?
要么
可以安全地忽略调用base()吗?
不,这不是新的 - 如果您没有显式调用基础构造函数,默认情况下将调用默认构造函数.
自己添加这个我会考虑只是"噪音",编译器会为你做这件事,所以你不必.如果需要除默认构造函数之外的特定重载,则应该只调用基本构造函数(这意味着如果基类不提供默认构造函数,则需要进行基本构造函数调用).