C# 与 .NET的关系

C#是一种编译语言,不是脚本语言。 脚本语言不会被编译,而只是逐条语句读取并进行解释(读取一条语句,翻译成机器码或者虚拟机码并立即执行,一条指令有可能翻译成多条机器指令),这对于像javascript这样的东西很有用,但是当对性能有要求时,编译语言就是可行的方法。

.NET 框架包含编译器,运行时和库。

一般而言,.NET是一个编程环境,除了其他东西外,还包含一个虚拟机CLR(Common Language Runtime)和一个广泛的类库BCL(Base Class Library)。
C#是一个针对.NET环境的编程语言,C#被编译成IL(一种用CLR执行的汇编语言), 并使用BCL中的类。

C# 是一种与C++ 非常相似的编程语言,而.NET是一个库、类和现成的方法的集合。.NET和 C# 紧密相关,每一个using语句都从.NET导入一个类的集合到用户的项目中。


.NET是一个框架,这就意味着.NET平台包含现有代码和体系结构的库,所有使用它的应用程序都是从这些库构建的。.NET类似于一种工具盒,提供的功能都已经功过不断的完善和改进,因此如果使用.NET开发应用程序,完全不需要写底层代码,开发过程将快速而高效。

例如,winforms就相当于一个搭建好的的地基,只需转到 文件 > 新项目,就可以通过基本的用户界面构建Windows应用程序。 而如果没有这个支持开发的库,用户就会不得不使用GDI自行生成window form和用户接口,这就是好处。

C#只是一种专门针对.NET编写的编程语言,事实上,.NET框架的绝大部分都是用C#写的 ( 如果不是全部的话 )。 它的语法只是C语言的下一个发展阶段,因此从C++过渡到C#应该不会太困难,二者语法类似。 任何.NET语言通常都与其他.NET语言兼容。 例如,一个编译过的VB类库可以在C#程序中使用。

因为.NET是一个框架,所以用户程序中引用的代码不会被编译到的程序中,用户引用的框架中的代码已经经过编译。 这就意味着运行程序的客户端也必须具有.NET框架,客户端的框架因为不包含开发工具,所以是精简版本。此框架已集成在Windows Vista/7中,只有某些使用Windows XP的用户需要考虑下载框架的问题。绝大多数的应用程序会准确检测到此需求并通知终端用户进行下载。

所有版本的Visual Studio都只是帮助您构建应用程序并更好地利用.NET框架的工具。 如果没有至少是Visual Studio的express (免费)版本,我是绝不会推荐使用任何.NET语言进行编码的。仅Intellisense 一个就可以了,也就是说,没有VS IDE进行编码是绝对可行的,可以打开一个记事本写C#程序,然后用免费编译器进行编译,然后执行。

总结:

  • NET 是一个编码框架。
  • C# 是一种设计用来利用.NET优势的语言。

另: Visual Basic 也是一种 .NET 语言,选择C#还是VB只是一种偏好问题。而 Visual Studio 是一个协助用户进行.NET编码的工具。

这就是二者之间的关系。


[1] https://stackoverflow.com/questions/5299593/c-sharp-and-net-relation

没有更多推荐了,返回首页