首页 新闻 会员 周边

关于用Reflector反编译C#的DLL后, 有一个方法不懂应该是写源代码与之对应, 请教大家

1
悬赏园豆:100 [已关闭问题] 解决于 2013-07-05 10:28

关于用Reflector反编译C#的DLL后, 有一个方法不懂应该是写源代码与之对应, 请教大家

下面就是反编译出来的

[CompilerGenerated]
private static bool <.cctor>b__5()
{
    return DoSelf(false);
}

 

这个反编译出来是这样, 请问这是什么方法呢? .cctor是静态构造函数, 但又出现在方法的前面.有人知道的, 请回复一下, 谢谢

C#
风浪的主页 风浪 | 老鸟四级 | 园豆:2996
提问于:2013-06-28 00:24
< >
分享
其他回答(3)
1

有的是微软的语法糖来着,是由我们的源代码编译后,csc将其转换成另外的代码。比如

1、迭代器,yield return 就会编译成继承自Ienumerator和Ienumerable接口的代码,以实现循环逻辑。参考:C#稳固基础:传统遍历与迭代器

2、async和await关键字,也会对其进行编译成状态机代码以实现异步。参考:(译)关于async与await的FAQ

收获园豆:30
滴答的雨 | 园豆:3660 (老鸟四级) | 2013-06-28 00:49
0

自己试试.net的各种用法就知道了,很多命名无规律的是.net自动生成的

happydaily | 园豆:301 (菜鸟二级) | 2013-06-28 08:09
0

1、.ctor是构造方法;
2、.cctor是类型初始化器,在C#中也就是静态构造函数;
3、当类C实例化时,会先对声明时就进行赋值的字段赋值,然后调用基类的构造函数,基类再以同样的方法构造自己,一直到顶层的System.Object,然后再回来执行C的显式构造方法中的代码,就是这么一个递归的过程。

WuRang | 园豆:1730 (小虾三级) | 2013-06-28 08:59
0

大概是语法糖了的。。推荐用ILSPY来反编译、

收获园豆:30
************** | 园豆:124 (初学一级) | 2013-06-29 18:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册