我从朋友那里得到一个应用程序来开发。然后在代码中我得到了这样令人困惑的代码:
public someNameHere()
{
base..ctor();
}
好吧,我从来没有这样的应用程序。我需要一个解释
基础..ctor();
我在谷歌上搜索,找不到让我满意的答案。感谢您给我的任何帮助。
我从朋友那里得到一个应用程序来开发。然后在代码中我得到了这样令人困惑的代码:
public someNameHere()
{
base..ctor();
}
好吧,我从来没有这样的应用程序。我需要一个解释
基础..ctor();
我在谷歌上搜索,找不到让我满意的答案。感谢您给我的任何帮助。
.ctor()
是构造函数使用的内部名称。它在 C# 中不以这种方式使用,并且不编译。更典型的base..ctor()
是,仅在执行以下操作时由编译器使用:
public class Foo : Bar {
public Foo(string s) : base(s) {...}
public Foo() {...} // has an implicit :base()
}
我见过的唯一不同的做法是在反编译(通过反射器等)一些非 C# IL 时,它以与 C# 编译器不同的顺序执行构造代码,因此在“纯”C# 中无法表达. 在原始 IL(以及来自 C++ 等)中,您可以在构造函数中的任何位置调用基本构造函数 - 而不仅仅是在开始时。
应该是基类的默认无参数构造函数。Elaborating,.ctor()
是编译 C# 时自动生成的构造函数的别名。所以Writingbase..ctor()
就是引用.ctor()
基类中的方法。