c#反编译对比(旧)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c#反编译对⽐(旧)
前⾔
旧的都是我以前博客的迁移。

我们写代码有时候遇到⼀些问题,或者我们想优化我们的代码,我们想要看编译后的运⾏情况,那么反编译是必须要做的⼀件事。

正⽂
在此我⾃⼰使⽤的是reflector和ILSpy,为什么使⽤这两种呢?
我们知道第⼀种reflector是收费的,但是我们有时候在不得已的情况下还是要⽤的。

为什么我说不得已的情况下⽤呢?因为有时候ILspy 反编译不出来。

对⽐
因为反编译⼯具的不同,那么编译出来的东西差别还是有的。

下⾯是相同代码反编译下的情况。

reflector
private static void Main(string[] args)
{
CacheItemPolicy policy = new CacheItemPolicy {
RemovedCallback = arguments => Console.WriteLine($"缓存被移除的原因:{arguments.RemovedReason}"),
SlidingExpiration = TimeSpan.FromSeconds(5.0),
Priority = CacheItemPriority.NotRemovable
};
MemoryCache.Default.Add("mykey", "myvalue", policy, null);
Console.WriteLine(MemoryCache.Default.Get("mykey", null));
Thread.Sleep(0x1770);
Console.WriteLine(MemoryCache.Default.Get("mykey", null));
Console.ReadKey();
}
ILSpy
private static void Main(string[] args)
{
CacheItemPolicy policy = new CacheItemPolicy {
RemovedCallback = arguments => Console.WriteLine($"缓存被移除的原因:{arguments.RemovedReason}"),
SlidingExpiration = TimeSpan.FromSeconds(5.0),
Priority = CacheItemPriority.NotRemovable
};
MemoryCache.Default.Add("mykey", "myvalue", policy, null);
Console.WriteLine(MemoryCache.Default.Get("mykey", null));
Thread.Sleep(0x1770);
Console.WriteLine(MemoryCache.Default.Get("mykey", null));
Console.ReadKey();
}
虽然细微的差别,但是我们⽤⼈脑去看多种反编译还是痛苦的,所以选择⼀两种反编译⼯具即可,不要经常换。

最好熟悉relector,收费总是有收费的理由的,有钱的话可以买⼀份⽀持下。

对了,在此提醒⼀下ILSpy 免费的,直接去github下载,不要搞野⽣,版本可能低⼀些。

相关文档
最新文档