初学者请教一个C#编译执行的问题

coolawen99 2013-01-04 02:18:30
最近在看一本书上说:C#.NET编译分成两步,第一部是预编译,将C#源代码编译成中间语言代码MSIL,在执行时使用JIT编译器将中间代码编译成本机代码,然后在CLR环境下运行本机代码

有几个问题想请教一下:
1、比如我在VS2005中编写了一个Hello的C#代码,在编译的时候(F5),是不是第一步和第二步编译都执行了?如果我想看看MSIL代码,怎么能看到呢?


2、在编译的过程中,使用到的C#基本类库中的类,是怎么编译的?是静态链接还是动态链接?

3、编译成本机代码以后,为什么还需要CLR环境?此时跟普通的一步编译产生的可执行代码有什么区别?我以为编译成本机代码就跟C代码编译成EXE一样了



...全文
82 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hauk 2013-01-04
  • 打赏
  • 举报
回复
1、是第一步和第二步编译都执行了,因为按F5的时候IDE做了2件事,编译和运行。在SDK的安装目录中有一个工具叫ildasm,可以打开任何.net编译出来的文件,打开即查看IL代码。 2、动态链接 3、要在win系统上只能直接运行win32程序,这样就失去了java、.net的跨平台特性了。所以java、.net都是先编译成中间代码,然后由虚拟机来运行。(cpu是不能识别中间代码的)

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧