C#语言基础介绍C#开发工程师

/ 福建师范大学数学与信息学院C#开发工程师 / 2017-03-19

首先我们先来了解C#的发展历程,只有知道了C#的概貌和由来,积累了必要的背景知识,才能更好的掌握C#,才能成为合格的C#开发工程师


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

    C#语言基础,C#开发工程师,C#开发工程师语言基础,汇鱼网

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


1.1 C#发展历程:


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

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


        1、Windows桌面应用程序;

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

        3、Web服务;


1.2 什么是.NetFramework


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

    1、全面的类库

    2、内存管理

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

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

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


    1.3 .NetFramework的组成


    前面简单介绍了一些基础的概念,接下来我们看看究竟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操作的类型,因此,使用FCL中的某个类的时候,还必须知道该类所在的命名空间。


C#代码的执行过程

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


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


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


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


公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇