一、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

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

  1. 利用Git查看项目代码总行数

    查看总提交行数.移除行数.项目总行数 git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $ ...

  2. C++(0)--mac 使用VScode 进行C++编译、运行、调试

    mac 使用VScode 进行C++开发 1.查看编译器情况 2.安装插件C/C++,C/C++ Clang Command Adapte 3.新建一个C++ project 3.1.本地新建文件夹 ...

  3. CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码

    CLR是Common Language Runtime的缩写,是.NET程序集或可执行程序运行的一个虚拟环境.CLR用于管理托管代码,但是它本身是由非托管代码编写的,并不是一个包含了托管代码的程序集, ...

  4. java代码编译时修改行为_GitHub - niuzhihua/AST_demo: 利用JavaParser框架在编译时修改语法树(源码)的 demo...

    本例子展示了如下功能: 1.删除方法中的 打印日志代码. 2.删除指定的 方法 和 成员变量. 3.检测方法中 是否有 new Thread 代码. 4.生成新的类和方法.并在运行时验证. 5.解析 ...

  5. cmd命令行进行C++代码编译运行;实现进程调度和存储管理

    最近刚考完一门,也算是有点闲暇时间,写个博客,就当做操作系统实验的笔记吧.        客官先别急着白嫖点个赞再看吧求求了 文章目录 一.在cmd命令行下编译运行C++源代码 1.进入目标目录 2. ...

  6. 利用Nginx正向代理加速代码编译外网依赖下载速度

    一个典型场景:        之前在ci涉及项目代码构建过程中的依赖都需要到国外下载,例如GitHub,谷歌等等,最初的解决方案是在公司国外服务器节点上安装gitlab-runner,并registe ...

  7. 该段代码编译运行后显示的是蓝色背景,白色闪烁字的效果

    int main(int argc,char **argv) {         printf("\033[44;37;5m hello world\033[0m\n");     ...

  8. 一套代码编译出ios和android,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...

    Hippy 跨端开发框架 介绍 Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS.Android 和 Web).Hippy 的设计是面向传统 Web 开 ...

  9. C++代码在Sublime Text 3中编译和运行

    Sublime Text 3中编译和运行 前言 以下可以避免因编码问题导致的乱码现象 前言 在数据结构代码的编写中,我选用了优秀的编辑器Sublime Text 3,但是在实现C++代码的编译和运行上 ...

  10. 手把手教你如下在Linux下如何写一个C语言代码,编译并运行

    文章目录 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 打开Ubuntu终端 创建 helloworld.c 编译C文件 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 ...

最新文章

  1. UA MATH564 概率论I 求离散型随机变量的分布1
  2. javaScript学习笔记之类型转换
  3. php 取数值整数的函数是,PHP取整数函数常用的四种方法小结
  4. 【线程】——单例模式
  5. .NET LINQ 限定符操作
  6. 数独游戏的设计与实现
  7. tomcat war包解压规则
  8. 最小巧最简单最安全的KMS模拟器vlmcsd,最新支持Win10 server2016和Office2016!
  9. 手机wifi java_Android中使用WIFI来连接ADB
  10. 5面阿里,终获offer(Java后端)
  11. android 2k屏分辨率是多少,手机2k屏幕是什么意思 2k屏幕几大问题
  12. mac linux 键盘布局,Macbook Pro 推出中文键盘布局
  13. 黑马程序员最新Python教程——第一阶段(1)
  14. MPB:南农韦中组-​根际细菌群落资源利用网络的研究方法
  15. linux如何注销远程用户登录,Linux无法被远程登录;用户的关机, 重启,注销,新增用户,删除用户...
  16. 刚刚,云之家、聚美、中公教育等120款APP侵害用户权益被点名
  17. Ubuntu定时开关机
  18. 中国EMBA教育培训行业发展规划与投资规模预测报告2021年版
  19. python爬取股票图_python 股票数据爬取(两种方法)
  20. Fitbit Flex 智能手环佩戴心得 主要说说过敏

热门文章

  1. OCR图像识别与汽车后市场
  2. 南阳理工ACM 第71题
  3. 无需U盘在Windows下安装Linux系统实现双系统(非子系统)
  4. WPF制作简易串口调试助手(上位机部分)
  5. 大数据大屏设计-PS拉框助手
  6. 将mysql驱动包添加到项目依赖
  7. JavaScript实现(轮播图,随机数,抽名字游戏,广告循环文字)
  8. PLSQL导入SQL文件
  9. Java生成验证码合集(一)简单版
  10. Java实现登录验证码功能