利用 ILSpy 查看 C# 代码编译及运行真相

一、ILSpy 介绍

ILSpy是一个开源的 .NET 反编译软件。

开源地址      下载地址

利用它,可以看到 C# 代码编译及运行真相,对代码优化非常重要!

通常可以采用这两种方式:

    1、写好 C# 源代码,生成 .dll文件,然后将 “.dll文件” 反编译为 “IL代码”。可以查看 IL 代码运行过程。

    2、写好 C# 源代码,生成 .dll文件,然后将 “.dll文件” 反编译为 “C#代码”。对比两份C#代码,可以看出 “一些C#语法糖的原理” 、“编译器自动帮我们做了什么代码调整或优化” 等。

 

二、在 Unity 中的使用

Unity 中,每次修改C#代码并编译后,Assembly-CSharp.dll 文件 将会被放入 \Library\ScriptAssemblies 下。

这个文件夹下也放着Unity依赖的一些 .dll文件,如:UnityEngine.UI.dll、Unity.Timeline.dll 等。

将这些文件拖入 ILSpy中,即可查看。

如下一段C# 代码:

using UnityEngine;

public class Test : MonoBehaviour
{
    void Start()
    {
        int a = 1;
        int b = 2;
        string c = "abc" + "efg";

        Debug.Log("Hello NRatel");
        Debug.Log("Hello ILSpy");
        Debug.Log("Hello C# and IL");

        Debug.Log(a + b);
        Debug.Log(c);
    }
}

查看反编译后的 IL 代码: 

查看反编译后的 C# 代码:

 

三、IL 语言

IL 是.NET框架中中间语言(Intermediate Language)的缩写。

OpCodes

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NRatel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值