C#快速入门之系统介绍(一)

初识C#及其开发环境

§1.1 C# 介绍

C#是由微软公司开发的一种面向对象并且运行于.NetFramework之上的高级程序设计语言。好多语法和C/C++类似,并且简单易学。

使用C#开发应用程序比使用其它语言更加简单,快速。因为C#是基于.NetFramework。.NetFramework为开发应用程序提供了丰富的类库和图形控件,使用这些控件就可以开发出一些简单的应用程序。

C#语言发布于2000年,经历了这么多年,微软也在不断更新C#的版本,每次升级都会带给我们眼前一亮,具体的升级特性我们会在以后的课程里慢慢接触。

C#能编写哪些应用程序?

​ 1:Windows桌面应用程序;

​ 2:Web应用程序,也就是网站;

​ 3:服务器开发(Photon框架等);

​ 4:游戏开发Unity3D

§1.2 认识.NET Framework

C#是一门编程语言,它用于实现于计算机的对话,而.NetFramework就是应用程序运行时的执行环境,为应用程序提供以下几种服务。

1:全面的类库

2:内存管理

3:通用类型系统:中间语言使用的预定义数据类型

4:开发结构和技术,如ASP.NET技术

5:语言互操作性:面向.NetFramework的语言编译器提供了生成中间语言代码的机制,这种机制使得不同语言之间相互操作成为了可能。

​ C#与.Net之间的对应关系如下表所示,大家不必去记住,需要的时候查阅即可。当.net framework有新特性之后,c#语言就可能会增加一些新的关键字来使用这种新的特性,或者语言有设计不合理的地方,需要更新一下时,c#语言就会作出一些变更,这时候可能就会有一个新的版本号

C#版本 .NET版本 发布日期 特性
C# 1.0 .NET Framework 1.0 2002-02-13 委托、事件
C# 1.1 .NET Framework 1.1 2003-04-24 APM(异步编程模型)
C# 2.0 .NET Framework 2.0 2005-11-07 泛型、匿名方法、迭代器、可空类型
C# 3.0 .NET Framework 3.0 2007-11-06 隐式类型
.NET Framework 3.5 2007-11-19 对象集合初始化、自动实现属性、匿名类型、扩展方法、查询表达式、Lambda表达式、 表达式树、分部类和方法、Linq
C# 4.0 .NET Framework 4.0 2010-04-12 动态绑定、命名和可选参数、泛型的协变和逆变、互操作性
C# 5.0 .NET Framework 4.5 2012-08-15 异步和等待(async和await)、调用方信息(Caller Information)
C# 6.0 .NET Framework 4.6 2015-07-20 静态导入、C# 6 中的新增功能
.NET Core 1.0 2016-06-27
C# 7.0 .NET Framework 4.6.2 2016-08-02 元组、C# 7.0 中的新增功能
C# 7.1 .NET Framework 4.7 2017-04-05
.NET Core 2.0 2016-08-14 .NET Core 2.0 的新增功能
C# 7.2 .NET Framework 4.7.1 2017-10-17
C# 7.3 .NET Framework 4.7.2 2018-04-30
.NET Core 2.1 2018-05-30 .NET Core 2.1 的新增功能
.NET Core 2.2 2018-12-04 .NET Core 2.2 的新增功能
C# 8.0 .NET Framework 4.8 2019-04-18 C# 8.0 中的新增功能
.NET Core 3.0 2019-09-23 .NET Core 3.0 的新增功能
.NET Core 3.1 2019-12-03 .NET Core 3.1 的新增功能
C# 9.0 .NET 5 2020-09-04 C# 9.0 中的新增功能
.NET 5 2020-10-13 What’s new in .NET 5

§1.3 .NET Framework组成

前面简单介绍了一些基础的概念,接下来我们看看究竟NetFramework有哪些部分组成。

主要包括两个部分,公共语言运行时(Common Language Runtime,CLR)和.Net Framework类库(Framework Class Library,FCL)。

1:公共语言运行时

它是核心基础,我们可以将CLR看成一个在执行时管理代码的代理,它提供了内存管理、线程管理和异常处理等服务,而且还负责对代码实施严格的类型安全检查,保证了代码的正确性。我们将受CLR管理的代码成为托管代码,不受CLR管理的代码称为非托管代码。

其中CLR包含两个部分:通用类型系统(CTS)和公共语言规范(CLS)。

比如C#和VB.NET都是由CLR进行管理的,但是它们的语法和数据类型各不相同,CLR是如何对这两种不同的语言进行托管的呢?

这就得益于CTS。CTS用于解决不同语言之间数据类型不同的问题,如C#中整形是int,而VB中是Integer,通过CTS可以将两者转换为Int32,所有.NET语言都共享这一类型系统,从而使它们之间能够无缝操作。

.NET语言不仅仅存在数据类型的不同,语言规范上也有明显的差距。CLS就是为了解决这个问题产生的。它制定了.NET平台为目标的语言所必需支持的最小特征。遵循该标准的语言在.NET平台下都可以相互调用。

2:.Net Framework类库

.Net Framework类库就是一组DLL程序集的集合,其中包含了大量定义好的数据类型,这些类型都公开了一些功能。由于FCL中包含了数量很多的类型,所以有必要将相关的一个类型放到一个单独的命名空间中加以区分,如System.IO就包含了用于执行IO操作的类型。

§1.4 C# 代码执行过程

在VS下,我们只需要按F5就可以编译和执行C#代码了,下面我们具体了解一下代码的执行过程。

(1)C#代码编译为中间语言代码阶段**(IL)**。

(2)中间语言代码解释为本机代码阶段,为了使IL代码能够运行,必需把它编译为本地代码,即CPU指令。这个过程由CLR的JIT编译器来完成。

(3)执行本机代码,JIT编译生成本机代码之后,编译好的本机代码会被放置到一个缓冲区,下次再调用相同的代码时,可以直接运行缓冲区的现有的本机代码,从而避免重新验证IL代码以及把它编译为本机代码的过程。使用这种方式,只有JIT发生的时候才有一定的性能损失。

§1.5 C# 的集成开发环境

​ 在Win环境下,C#的开发比较简单,有专门的集成开发环境Visual Studio (2017 、2019都可)。在Mac下,可以使用Xamrin Studio/Visual Studio Code进行开发,它也是一个集成的开发环境,使用起来也比较简单。
我们下面的内容以VS2019为例进行讲解。

你可能感兴趣的:(C#快速入门,c#)