.NET是一门体系结构。C#是不能独立于.NET之外的,它必须要和.NET Framewoke一起考虑。也就是说C#的编译器其实是专门为.NET准备的,所以C#编写的代码总是使用.NET Framewoke。C#本身只是一门语言,尽管它是用于生成面向.NET环境的代码,但是它本身不是.NET的一部分。.NET支持的一些特性它不一定就支持,反过来C#支持的一些特性(例如运算符重载).NET他就不支持。所以他们并不是包含的关系。以下是一些关系结论:
①、我们通过C#的体系结构和方法论反映了.NET的体系结构;
②、在许多情况下C#的语言功能取决于.NET的功能。
这样大家就不会把他们搞混了。所以呢我们除了学习C#的语法之外,也应该去了解.NET的东西。去看之前我写过的关于C#的一些基础知识,就是我们.NET体系的知识,可以回看一下。再稍微重复下一些:
CLR | |
公共语言运行库 (common language runtime,CLR) 是托管代码执行核心中的引擎。 | |
运行库为托管代码提供各种服务,如跨语言集成、代码访问安全性(即数据类型是清楚的,唯一的)、对象生存期管理、调试和分析支持。 | |
它是整个.NET框架的核心,它为.NET应用程序提供了一个托管的代码执行环境。 | |