在C#中,尝试编译以下代码会产生错误“涉及'A‘和’A.B‘的循环基类依赖”
public class A : A.B
{
public class B { }
}
然而,我通过一个反编译器查看了一个第三方DLL,并看到了这个结构。这怎麽可能?我只能假设第三方DLL是用其他.Net语言编写的,但是哪种语言和语法是什么?
我已经使用JD反编译了一组类。
在其中一个类中,有一个对类中公共字段的引用。我用提到的字段打开这个类。想象一下当我遇到这个的时候我有多惊讶:
public enum agw
{
}
我得出的结论是,反编译器不能成功地反编译某种类类型,可能是枚举。我遇到过其中的几个。
另一个例子:
public enum acf
{
private final Class d;
private final int e;
private final acn f;
private final boolean g;
private acf(Class paramacn, int paramBoo
最近我在TryRoslyn上玩TryRoslyn编译器,我遇到了一个奇怪的问题,一个不等式检查被转换成大于一个。以下是复制代码:
using System;
public class C {
public void M() {
if (Foo() != 0 || Foo() != 0)
{
Console.WriteLine("Hi!");
}
}
private int Foo() => 0;
}
下面是由反编译器生成的代码:
using System;
using Sys
我有一个来自反编译flash的动作脚本,如下所示
public function getResourceAsByteArray(resID:int):flash.utils.ByteArray
{
var tempByteArray:*=null;
var fName:*=this.clazzName;
var resDataDup:*=new clazzByteArray() as flash.utils.ByteArray;
var resPos:*=this.post;
var resLeng
我不是一个有经验的程序员,我对java也知之甚少。
我有一个用java1.5编译的有10年历史的小java软件。很明显,我没有源代码。这个软件有一个小bug,所以我用了一个java反编译器,找到了这个bug。解决方案很简单,但是我在重新编译这个类时遇到了困难。我正在使用java1.5.0_12重新编译。
不幸的是,编译器似乎在代码中遇到了一些错误。
it/cp/pacm/dbsync/Synchronizer.java:234: possible loss of precision
found : int
required: char
/* 287 */ c = Intege
当我打开像ILSpy或dotPeek这样的工具时,我可以选择查看反编译的C#或IL。
当您查看反编译源时,反编译器是否将IL反向工程成反编译的C#?
如果是这样的话,那么反编译者将如何推断像下面这样的IL?(请注意,这是第一语言构造的一个微不足道的例子,它很难从IL中推断出来,而不是反编译器的实际输出):
IL_0000: nop // Do nothing (No operation)
IL_0001: ldstr "C" // Push a string object for the literal string
IL