8

我正在反汇编一些 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;
    }
}
4

2 回答 2

15

它应该是 :

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

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

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

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

于 2013-08-09T15:47:30.013 回答
5

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

实际代码如下所示:

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

    public ZlibException(string s) : base();
    {
        return;
    }
}
于 2013-08-09T15:46:34.547 回答