关于C#和.NET Framework的理解开始,由于有了Java的基础,在一些概念的理解上还是可以通过类比来了解的。在这里主要讲一些C#中特有的或者与Java有区别的东西,本系列的文章主要是为自己的学习做一个笔记。
首先来看一下.NET Framework的组成,如下图所示:
包括了3个方面的内容,
1. CLR(Common Language Runtime,公共语言运行库)。负责在运行时管理软件的执行。包括内存的管理,代码安全验证,代码执行,垃圾收集(GC)等内容,相当于Java中的JVM的角色。
2. 编程工具,包括了代码的开发,调试,编译等工作。包括Visual Studio开发环境,编译器,调试器等
3. BCL(Base Class Library,基类库),这个是.NET Framework使用的一个统一的大类库,和Java的类库的概念相似。
.NET语言的编译器接到源代码文件后,首先生成名字为"程序集(assembly)"的输出文件。它可以是可执行文件或者DLL。程序集中的代码并不是本机代码(这一点和Java源代码编译成.class文件比较像),而是一种成为CIL(Common Intermediate Language,公共中间语言)的中间语言。在运行的时候JIT编译器(Just-in-Time)会负责将CIL的一部分编译成本机代码,然后CLR就可以在运行时对它进行管理了。
另外,这里还有2个术语需要了解下:托管代码和非托管代码。
托管代码是.NET Framework编写的代码,需要CLR支持;而非托管代码不需要受CLR控制,比如传统的win32程序,它们并不是.NET程序。
最后一个概念是CLI(Common Language Infrastructure,公共语言基础结构),它是一组标准,说明了如何组织.NET Framework的组件并构成一个内聚的、一致的系统。这个概念对开发者来说并不是很重要,只是简单的了解一下即可。
CLI包括如下的组成部分:
1. CTS(Common Type System,公共类型系统),定义了在托管代码中一定会使用的类型特征。包括一组内置类型,还有类型的公共基类"object"等。
2. CLS(Common Language Specification,公共语言规范),定义了一个.NET兼容编程语言的规则,行为等。
C#和.NET Framework的基本内容就向你介绍到这里,希望对你了解和学习C#和.NET Framework有所帮助。
【编辑推荐】