关于base..ctor()的解释

时间:2013-04-23 08:11:39

标签: c#

我正在收到朋友的申请表。然后在代码中我得到了这样令人困惑的代码:

public someNameHere()
{
   base..ctor();
} 

好吧,我从来没有这样的应用程序。我需要对此进行解释

  

base..ctor();

我在谷歌上搜索,找不到满足我的答案。感谢你给我的任何帮助。

2 个答案:

答案 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()方法。