在Xamarin Assembly Browser中反汇编类库我的语法无效in the source
InventoryTab.<DrawResources>c__AnonStoreyF <DrawResources>c__AnonStoreyF =
new InventoryTab.<DrawResources>c__AnonStoreyF ();
什么代码对应于这样的输出?
lambda(谢谢,D Stanley)反汇编的整个相关部分是
InventoryTab.<DrawResources>c__AnonStoreyF <DrawResources>c__AnonStoreyF =
new InventoryTab.<DrawResources>c__AnonStoreyF ();
<DrawResources>c__AnonStoreyF.tooltipText = "some string";
if (current.availableCount > -1) {
InventoryTab.<DrawResources>c__AnonStoreyF arg_432_0 =
<DrawResources>c__AnonStoreyF;
string tooltipText = <DrawResources>c__AnonStoreyF.tooltipText;
arg_432_0.tooltipText = string.Concat (new string[] {
tooltipText,
// and some more strings...
"\n\n"
});
}
TipSignal tipSignal = new TipSignal (() =>
<DrawResources>c__AnonStoreyF.tooltipText,
<DrawResources>c__AnonStoreyF.tooltipText.GetHashCode ()
);
TooltipHandler.TipRegion (rect, tipSignal);
现在我试图找出lambda 应该 的样子。
TipSignal定义为
public TipSignal (string text, int uniqueId);
以下代码是否可以作为lambda替换?
string tooltipText = "some string";
if (current.availableCount > -1) {
tooltipText = string.Concat (new string[] {
tooltipText,
// and some more strings...
"\n\n"
});
}
TipSignal tipSignal = new TipSignal (tooltipText, tooltipText.GetHashCode ());
TooltipHandler.TipRegion (rect, tipSignal);
答案 0 :(得分:2)
它不应该&#34;应该&#34;看,因为你正在反编译,所以任何给出相同结果的代码都同样正确。在反编译时,它不可能知道原始文件的样子,因为任何反编译都必须猜测几个可能的输入,不包括删除的死代码,等等。
只是将故意无效的名称(在原始编译中用于保证不与开发人员实际使用的名称冲突)更改为有效的内容,如awk 'BEGIN {FS=OFS="|"} NR==FNR{a[$1]=$5;next} $5 in a{$5=a[$1];print $0}' input file > new
,除非反编译出错(在这种情况下,它赢了&#39)无论如何,无论如何,如果有任何事情它更有可能获得这些部分,那么它的错误就比这里更全面了)那么你就会有工作代码。然后在整理其余部分时整理它,给出更好的名字和/或如果你愿意的话将其变成匿名课程。