我正在收到朋友的申请表。然后在代码中我得到了这样令人困惑的代码:
public someNameHere()
{
base..ctor();
}
好吧,我从来没有这样的应用程序。我需要对此进行解释
base..ctor();
我在谷歌上搜索,找不到满足我的答案。感谢你给我的任何帮助。
答案 0 :(得分:20)
.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 ++等)中,您可以在构造函数中的任何位置调用基础构造函数 - 而不仅仅是在开始时。
答案 1 :(得分:3)
应该是基类的默认无参数构造函数。
Elaborating,.ctor()
是构造函数自动生成编译C#的别名。因此,编写base..ctor()
引用基类中的.ctor()
方法。