这几天学了不少东西,想来还是应该总结一下,一来自己回顾一下,二来也怕自己忘记,在文章中,有很多东西就是借鉴别人的blog,笔者在这里对他们的无私奉献表示感谢。笔者的语言组织能力有限,如果在文章中出现什么错误,在下面回复即可,谢谢。
相信学过.net的人都对.netFramework不陌生吧,这个是学习.net必须要了解的东西,下面笔者就介绍一下.netFramework ,
如上图,我们平时写的cs文件,经过.NetFramework,最后才和操作系统交互,这样我们的程序才能运行起来,那么我们就很好奇,.NetFrameWork里面到底有什么东西,为什么我们写的cs代码经过编译都变成了xx.dll
.NetFrameWork是由.net类库,编译器,和CLR组成。我们写的cs代码,通过.netFrameWork里面的类库,由编译器编译成xx.dll 如下事例:我们新建一个cs文件在里面写上如下代码:
using System;
namespace FDLibrary
{
public class test
{
public string name;
}
}
打开cmd命令行,输入如下命令:csc /t:library 1.cs csc就会把它编译成1.dll 这个1.dll就是一个程序集,而using System就是引用的.NetFrameWork的类库,然后由编译器编译成dll文件。接着程序集就会被托管到CLR中。其实我们用Reflector工具可以看一下这个生成的dll文件中到底有什么东西。
我们选择IL代码查看如图:
发现这些代码我们并不认识,但可以凭着感觉稍微看懂一点,这就是CIL公共中间语言,也就是说cs代码被编译成了中间语言。
CLR: common language runtime 公共语言运行时,程序有CLR管理就叫托管程序。通过CLR可以编译中间语言,然后生成机器码,最后由操作系统来运行机器码,我们写的程序才能运行起来。
新闻热点
疑难解答