利用 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
利用 ILSpy 查看 C# 代码编译及运行真相相关推荐
- 利用Git查看项目代码总行数
查看总提交行数.移除行数.项目总行数 git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $ ...
- C++(0)--mac 使用VScode 进行C++编译、运行、调试
mac 使用VScode 进行C++开发 1.查看编译器情况 2.安装插件C/C++,C/C++ Clang Command Adapte 3.新建一个C++ project 3.1.本地新建文件夹 ...
- CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码
CLR是Common Language Runtime的缩写,是.NET程序集或可执行程序运行的一个虚拟环境.CLR用于管理托管代码,但是它本身是由非托管代码编写的,并不是一个包含了托管代码的程序集, ...
- java代码编译时修改行为_GitHub - niuzhihua/AST_demo: 利用JavaParser框架在编译时修改语法树(源码)的 demo...
本例子展示了如下功能: 1.删除方法中的 打印日志代码. 2.删除指定的 方法 和 成员变量. 3.检测方法中 是否有 new Thread 代码. 4.生成新的类和方法.并在运行时验证. 5.解析 ...
- cmd命令行进行C++代码编译运行;实现进程调度和存储管理
最近刚考完一门,也算是有点闲暇时间,写个博客,就当做操作系统实验的笔记吧. 客官先别急着白嫖点个赞再看吧求求了 文章目录 一.在cmd命令行下编译运行C++源代码 1.进入目标目录 2. ...
- 利用Nginx正向代理加速代码编译外网依赖下载速度
一个典型场景: 之前在ci涉及项目代码构建过程中的依赖都需要到国外下载,例如GitHub,谷歌等等,最初的解决方案是在公司国外服务器节点上安装gitlab-runner,并registe ...
- 该段代码编译运行后显示的是蓝色背景,白色闪烁字的效果
int main(int argc,char **argv) { printf("\033[44;37;5m hello world\033[0m\n"); ...
- 一套代码编译出ios和android,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...
Hippy 跨端开发框架 介绍 Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS.Android 和 Web).Hippy 的设计是面向传统 Web 开 ...
- C++代码在Sublime Text 3中编译和运行
Sublime Text 3中编译和运行 前言 以下可以避免因编码问题导致的乱码现象 前言 在数据结构代码的编写中,我选用了优秀的编辑器Sublime Text 3,但是在实现C++代码的编译和运行上 ...
- 手把手教你如下在Linux下如何写一个C语言代码,编译并运行
文章目录 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 打开Ubuntu终端 创建 helloworld.c 编译C文件 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 ...
最新文章
- UA MATH564 概率论I 求离散型随机变量的分布1
- javaScript学习笔记之类型转换
- php 取数值整数的函数是,PHP取整数函数常用的四种方法小结
- 【线程】——单例模式
- .NET LINQ 限定符操作
- 数独游戏的设计与实现
- tomcat war包解压规则
- 最小巧最简单最安全的KMS模拟器vlmcsd,最新支持Win10 server2016和Office2016!
- 手机wifi java_Android中使用WIFI来连接ADB
- 5面阿里,终获offer(Java后端)
- android 2k屏分辨率是多少,手机2k屏幕是什么意思 2k屏幕几大问题
- mac linux 键盘布局,Macbook Pro 推出中文键盘布局
- 黑马程序员最新Python教程——第一阶段(1)
- MPB:南农韦中组-​根际细菌群落资源利用网络的研究方法
- linux如何注销远程用户登录,Linux无法被远程登录;用户的关机, 重启,注销,新增用户,删除用户...
- 刚刚,云之家、聚美、中公教育等120款APP侵害用户权益被点名
- Ubuntu定时开关机
- 中国EMBA教育培训行业发展规划与投资规模预测报告2021年版
- python爬取股票图_python 股票数据爬取(两种方法)
- Fitbit Flex 智能手环佩戴心得 主要说说过敏