C#反编译
我刚刚浏览了Telerik的JustDecompile中我自己的一些代码,注意到下面的代码C#反编译,c#,.net,decompiling,C#,.net,Decompiling,我刚刚浏览了Telerik的JustDecompile中我自己的一些代码,注意到下面的代码 switch (data.CurrentSection) { case SurveyData.CurrentSectionEnum.Section1: divSection1.Visible = true; divSection2.Visible = false; divSection3.Visible = false;
switch (data.CurrentSection)
{
case SurveyData.CurrentSectionEnum.Section1:
divSection1.Visible = true;
divSection2.Visible = false;
divSection3.Visible = false;
break;
case SurveyData.CurrentSectionEnum.Section2:
divSection1.Visible = false;
divSection2.Visible = true;
divSection3.Visible = false;
break;
case SurveyData.CurrentSectionEnum.Section3:
divSection1.Visible = false;
divSection2.Visible = false;
divSection3.Visible = true;
break;
}
显示为
switch (data.CurrentSection)
{
case CurrentSectionEnum.Section1:
{
this.divSection1.set_Visible(true);
this.divSection2.set_Visible(false);
this.divSection3.set_Visible(false);
break;
}
case CurrentSectionEnum.Section2:
{
this.divSection1.set_Visible(false);
this.divSection2.set_Visible(true);
this.divSection3.set_Visible(false);
break;
}
case CurrentSectionEnum.Section3:
{
this.divSection1.set_Visible(false);
this.divSection2.set_Visible(false);
this.divSection3.set_Visible(true);
break;
}
}
这是Telerik反编译器的产物,还是我的直觉是正确的,框架的某个较低级别部分不存在“使用等号设置”操作符?如果有人能提供更多信息吗?属性是C#(以及VB.Net)语言的构造,而不是CLR。它们被实现为get_XXX和set_XXX方法
我希望反编译器能够识别它们 属性是C#(以及VB.Net)语言的构造,而不是CLR。它们被实现为get_XXX和set_XXX方法
我希望反编译器能够识别它们 确保您拥有最新版本的JustDecompile。我用2012.1.214.2版试过你的代码,它正在生成你所期望的C 正如其中一条评论中提到的,getter和setter只是方法。以下是IL中呼叫的外观:
ldloc.0
ldc.i4.1
callvirt instance void DivSection::set_Visible(bool)
确保您拥有最新版本的JustDecompile。我用2012.1.214.2版试过你的代码,它正在生成你所期望的C 正如其中一条评论中提到的,getter和setter只是方法。以下是IL中呼叫的外观:
ldloc.0
ldc.i4.1
callvirt instance void DivSection::set_Visible(bool)
Clear的可能副本不是一个很好的反编译器。Clear的可能副本不是一个很好的反编译器。这不是真的。属性确实存在于CLR级别(例如,请参见
PropertyInfo
),但setter和getter只是方法,这是对的。没错,程序集确实包含描述属性的元数据。反编译器应该提取它们的另一个原因。这不是真的。属性确实存在于CLR级别(例如,请参见PropertyInfo
),但setter和getter只是方法,这是对的。没错,程序集确实包含描述属性的元数据。反编译器应该提取它们的另一个原因。