编译和运行过程
- C#源文件先在C#编译器编译,产生程序集(在.Net框架编写的代码,需要在CLR的环境下运行)
- 程序集在JIT编译器(CLR)进行解析,解析成为本机代码
- 本机代码能够被操作系统交互,识别
CLR(公共语言运行库)
内存管理、异常处理、垃圾收集、发射服务、JIT编译器、类加载器、安全服务
.Net
- .net框架的组成分为两部分:
- CLR:公共语言运行时(Common Language Runtime),提供内在管理,代码安全性检测等功能。
- FLC:.NET框架类库(.NET Framework Class Library),提供大量应用类库,类库中有很多线程的资源可使用(比如:类,方法,属性),提高开效率。
2. CLR的结构:
- CLS:公共语言规范,获取各种语言转换成统一的语法规范。
- CTS:通用类型系统,将各种语言中的数据类型转换成统一的类型
- JIT:实时编译器(即时编译器)用于将转换之后的语言编译为二进制语言,交给CPU执行。
3. .NET运行的机制流程
各种语言(c#,F#,j#等对应的源程序)——>经过CLS,CTS第一次编译——>统一规范语言(中间语言)MSIL(.EXE,.DLL)——>JIT第二次编译——>二进制语言——>运行在CPU中
C#和.Net的关系
- C#是.Net的一部分,用于编写.net应用程序
- .Net框架平台,可以编写出Windows应用程序、Web应用程序、Web服务
- c#、C++、Jscript等语言都可以访问框架,.net是一个巨大的代码库,有很多组件
Hello World
using System;//直接访问 System 命名空间中定义的类和成员,而无需在每个引用的地方都显式指定命名空间
namespace HelloWorldApplication//命名空间是用来组织和管理代码的一种机制,它可以避免命名冲突,并将相关的类、结构体、接口等组织在一起
{
class HelloWorld
{
static void Main(string[] args)
{
/* 我的第一个 C# 程序*/
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}