- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解一种使用 Reflector 反汇编功能的方法。使用过此工具的任何人都知道,某些代码显示时带有 C# 标签,这些标签(大概)未在原始源代码中使用。
在我正在查看的 110 行方法中,有 11 个标签语句。随机片段示例:
Label_0076:
if (enumerator.MoveNext())
{
goto Label_008F;
}
if (!base.IsValid)
{
return;
}
goto Label_0219;
Label_0087:
num = 0;
goto Label_01CB;
Label_01CB:
if (num < entityArray.Length)
{
goto Label_0194;
}
goto Label_01AE;
Label_01F3:
num++;
goto Label_01CB;
什么样的代码让 Reflector 到处显示这些标签,为什么它不能反汇编它们?
是否有破解它们的好方法?
最佳答案
实际上,C# 编译器并没有做太多优化——它把优化留给了 JIT 编译器(或 ngen)。因此,它生成的 IL 非常一致且可预测,这就是 Reflector 等工具能够如此有效地反编译 IL 的原因。编译器确实会转换您的代码的一种情况是在 iterator 中。方法。您正在查看的方法可能包含以下内容:
foreach(var x in something)
if(x.IsValid)
yield return x;
由于迭代器转换可能非常复杂,Reflector 无法真正处理它。要熟悉要查找的内容,请编写您自己的迭代器方法并通过 Reflector 运行它们,以查看根据您的 C# 代码生成了哪种 IL。然后您就会知道要寻找什么。
关于c# - Label_ 标记在 Reflector 中来自哪里,如何破译它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1367712/
我正在使用 scikit learn 进行亲和性传播算法。我的输入数据是大小为 2303*2303 的 numpy 数组。它是一个相似度矩阵。我想计算簇中每个元素到其质心的距离。当我尝试打印标签时,出
我正在尝试了解一种使用 Reflector 反汇编功能的方法。使用过此工具的任何人都知道,某些代码显示时带有 C# 标签,这些标签(大概)未在原始源代码中使用。 在我正在查看的 110 行方法中,有
我正在使用 Python Spacy 将任何带有标签_==“PERSON”的实体替换为“[XXX]”。看起来我做对了,但我正在努力在我的测试字符串中替换它: import spacy from spa
我是一名优秀的程序员,十分优秀!