1.c#概念及特点
版本链接:C# 发展历史 - C# 指南 - C# | Microsoft Learn
C#是微软公司基于.NET FrameWork框架设计的面向对象的程序语言,是从C和C++派生来的一种简单、现代、面向对象、和类型安全的编程语言,能够与.NET FrameWork框架完美结合,运行在.NET FrameWork框架之上。
特点:
a.语法简介。
b.彻底的面向对象
c.与web紧密结合。
d.灵活的版本处理技术。
e.完善的错误、异常处理机制.
f.强类型。
注:除C#是面向对象的语言,向Python、php、Java、JavaScript也是面向对象的语言。
2.C#中的CTS、CLS、CLR
在了解这三个概念之前要先知道IL
IL(Intermediate Language) 翻译为中间语言,是经过编译后可以执行的二进制代码,实现了.net平台的互联互通,后缀名为.exe或.dll。IL中间语言,是在CLR监控下运行的代码,成为托管代码(Managed Code)
注:
a.托管代码,肯定安全。被CLR监控。
b.非托管代码,不安全,有可能使用了指针。
2.1.CTS(Commom Type System) 通用类型系统
CTS定义了一套通用的对于编译时的数据类型系统
例如:在Vb.Net中对整形的定义为integer,在C#中对整形的定义为int,经过编译前经过CTS后integer和int统一编程为int32
2.2.CLS(commer Language Specification) 公共语言规范
可简单理解为:统一编码规定或语法规范
过程:在编译时利用CLS将C#或其他.Net平台的语言编译成IL(中间语言),实现代码通用,然后经过反编译就可以形成其他的代码了。
第一次编译:把源码,通过CTS,CLS,编译成中间语言IL
第二次编译:把IL,通过CLR,通过实时编译JIT,编译成机器语言
2.3.CLR(Commom Language Runtime)公共语言运行时
用于驱动程序运行,执行实时编译(JIT,Just In Time 即时编译)? ? ? ? ? ?即时:
将代码转换为机器指令。还包括垃圾回收机制(GC)等.
3.C#与.NET FrameWork的关系
.NET FrameWork是微软推出的在windows平台上的开发框架,是一个平台,不是语言,C#才是编程语言。.NET FrameWork框架可兼容多种编程语言的编译,包括V8、C#、J#等语言。其中C#是微软主推的编程语言。
框架关系结构图:
操作系统:.NET FrameWork是运行在Windows操作系统上的,不能运行在其他操作系统上,如:苹果的MAC系统和Unix或Linux系统上。
CLR(Common Language Runtime)公共语言运行时
在使用C#获取V8编译的代码要编程成能被CLR运行的可执行代码,这个过程中CLR提供了一个运行时环境。从上图中可以看出 CLR是.NetFramework的底层
FCL(Framework Class Library)
FCL是.Net Framework框架类库,包括有几千个类型的定义,每个类型都提供了某种功能。
4、.Net FrameWork和.Net Core的关系
3.1、.Net FrameWork 与.Net Core是.net平台推出的两大框架
(1)、.Net FrameWork可以用来创建Windows应用程序,即所说的WinForm开发
?.Net FrameWork下载链接:下载 .NET Framework | 免费官方下载
(2)、.Net Core是微软推出的最新的开源、跨平台的框架,可以运行在Windows、MAC、Linux系统上。