什么是base..ctor();在C#?

时间:2013-08-09 15:44:14

标签: c# base

我正在拆解一些C#应用程序,我正在尝试重构源代码。我正在将应用程序与所需的DLL一起拆解。
我不断遇到这一行base..ctor();,这给了我一个错误。该行出现在StreamException的某些子类中的某些空洞中。

有谁知道代码应该是什么?我在想,反汇编程序搞砸了一些如何,它显然是无效的代码。 那么有谁知道这意味着什么以及我如何改变这条线以便它起作用呢?

以下是其中一个子类的代码:

[Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")]
public class ZlibException : Exception
{
    public ZlibException()
    {
        base..ctor();
        return;
    }

    public ZlibException(string s)
    {
        base..ctor();
        return;
    }
}

2 个答案:

答案 0 :(得分:12)

应该是:

[Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")]
public class ZlibException : Exception
{
    public ZlibException() : base()
    {
        return;
    }

    public ZlibException(string s) : base()
    {
        return;
    }
}

在此类的基本实现上调用带有该签名的构造函数。

但默认情况下,.NET CLR会为您调用基本的空白构造函数,因此您实际上并不需要: base()

答案 1 :(得分:5)

它正在调用基础构造函数,你的反编译器只是奇怪地显示它。在IL中,构造函数简称为.ctor,所以当直接读取IL时,你的反编译器显然很混乱,认为这只是另一种方法。

实际代码如下:

public class ZlibException : Exception
{
    public ZlibException() : base();
    {
        return;
    }

    public ZlibException(string s) : base();
    {
        return;
    }
}