我正在拆解一些C#应用程序,我正在尝试重构源代码。我正在将应用程序与所需的DLL一起拆解。
我不断遇到这一行base..ctor();
,这给了我一个错误。该行出现在Stream
和Exception
的某些子类中的某些空洞中。
有谁知道代码应该是什么?我在想,反汇编程序搞砸了一些如何,它显然是无效的代码。 那么有谁知道这意味着什么以及我如何改变这条线以便它起作用呢?
以下是其中一个子类的代码:
[Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")]
public class ZlibException : Exception
{
public ZlibException()
{
base..ctor();
return;
}
public ZlibException(string s)
{
base..ctor();
return;
}
}
答案 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;
}
}