C# 关于base..ctor()的说明

C# 关于base..ctor()的说明,c#,C#,我正在从我的朋友那里得到一个开发应用程序。然后在代码中,我得到了如下令人困惑的代码: public someNameHere() { base..ctor(); } 我从来没有收到过这样的申请。我需要一个解释 base..ctor() 我一直在谷歌上搜索,找不到令我满意的答案。非常感谢您的帮助。应该是基类的默认无参数构造函数。 详细说明,.ctor()是编译C#时自动生成的构造函数的别名。因此,编写base..ctor()是引用基类中的.ctor()方法。.ctor()是构造函数使用的

我正在从我的朋友那里得到一个开发应用程序。然后在代码中,我得到了如下令人困惑的代码:

public someNameHere()
{
   base..ctor();
} 
我从来没有收到过这样的申请。我需要一个解释

base..ctor()


我一直在谷歌上搜索,找不到令我满意的答案。非常感谢您的帮助。

应该是基类的默认无参数构造函数。 详细说明,
.ctor()
是编译C#时自动生成的构造函数的别名。因此,编写
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++等)中,你可以在构造函数中的任何点调用基建器,而不仅仅是在开始时。

看起来像是语法错误。基类构造函数的调用类似于
公共MyCtor():Base()
。这不会编译,不是吗?另外,我不认为你能以这种粗鲁的方式访问一个真正的基类的ctor。它看起来像是从反汇编程序复制的东西。。。在任何情况下都不需要这一行,因为空基构造函数被称为隐式。这看起来像是反编译器的输出。在IL中,对基类构造函数的调用实际上是这样调用的。寻找一个更好的反编译器从你的朋友那里“获取”代码:-)请详细说明你的答案,而不仅仅是一行评论。这足以让提问者通过谷歌获得更多信息,当然?@Poldie那么Stackoverflow就是这样的吗?给出简短的答案,仅仅足够提问者用谷歌搜索其他答案吗?有时候一个长而详细的答案是有意义的。其他时候,提问者显然需要仔细阅读这个主题;在本例中,构造函数—语法、使用方式和原因。除非你觉得可以再写一篇关于这个主题的教程,否则让他们使用相关术语搜索一篇教程似乎是最好的答案。@Just another Users你可能知道我同意2so在这种情况下你说我的朋友给了我反编译结果的源代码?@HaritsFadillah很可能;这肯定是无效的#