3.1 C#概述
知识点讲解:光盘:视频\PPT讲解(知识点)\第3章\什么是C#.mp4
C#读作“C Sharp”,是从C和C++进化而来的、新一代的编程语言。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,是微软公司研究员Anders Hejlsberg的研究成果。从表面来看,C#与Java有很多相似之处,它包括了诸如单一继承和界面,并且和Java拥有几乎相同的语法格式。实际上,C#与Java有着明显的不同,它与COM(组件对象模型)是直接集成的,而且它是微软公司.NET Windows网络框架的主角。C#是微软为.NET平台量身打造的一种全新语言。
3.1.1 C#的推出背景
在过去的20年里,C和C++已经成为在商业软件开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,但同时它们也牺牲了一定的效率。例如,和Visual Basic等语言相比,同等级别的C/C++应用程序往往需要更长的时间来开发。由于C/C++语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的平衡点。
目前,有些语言以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C++程序员所需要的。这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),其所提供的功能难以令人满意。这些语言无法方便地同以前版本的操作系统交互,也无法很好地和当前的网络编程环境相结合。
对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,一些C/C++开发人员还需要在必要的时候进行一些底层的编程。
C#就是微软公司针对上述问题给出的解决方案。C#是一种最新的、面向对象的编程语言。它使程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发计算机与通信领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象,还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便地转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。最重要的是,C#使得C/C++程序员可以高效地开发程序,而绝不损失C/C++原有的强大功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快地转型于C#。
3.1.2 C#的特点
C#语言的定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点。C#在设计者从C++继承的可选选项方面比Java要广泛一些,它还增加了自己独有的新特点。但是C#还不太成熟,需要进化成一种开发者能够接受和采用的语言。
C#的特点主要体现在如下3个方面。
1.从Java中继承的特点
C#继承了Java的大多数特点,包括实用语法和范围等。例如,最基本的“类”,在C#中类的声明方式和在Java中很相似。Java的关键字import在C#中被替换成了using,但是它们起到了同样的作用,并且一个类开始执行的起点都是静态方法Main()。
2.从C和C++中继承的特点
C#从C和C++中继承的特点主要体现在如下3个方面。
- 编译。程序直接编译成标准的二进制可执行形式,但C#的源程序并不是被编译成二进制可执行形式,而是一种中间语言,类似于JAVA的字节码。例如,一个名为“Hello.cs”的程序文件,它将被编译成Hello.exe的可执行程序。
- 结构体。一个C#的结构体与C++的结构体是相似的,它们都包含数据声明和方法。
- 预编译。C#中存在预编译指令,支持条件编译、警告、错误报告和编译行控制。
3.基本特点
C#的基本特点如下。
- 简单。C#具有的一个优势就是便于学习,因为它去掉了C++的一些功能。
- 现代。C#是为编写NGWS(NGWS是微软的开发平台,它使创建网络应用程序、Win32和Win64图形用户界面和控制台应用程序、Windows服务以及用作NGWS应用程序构造块的通用组件等任务变得简单。
- 面向对象。C#支持所有关键的面向对象的概念,如封装、继承和多态性。
- 类型安全。C#实施最严格的类型安全,以保护自己及垃圾收集器,所以,在使用过程中必须遵守C#中一些相关变量的规则。例如,不能使用没有初始化的变量,取消了不安全的类型转换,实施边界检查等。
- 兼容。C#不是一个封闭的技术,它允许使用NGWS的通用语言访问不同的API。CLS(公共语言规范)规定了一个标准,符合这种标准的语言可以在程序内部访问并实现任何相关操作。为了加强CLS的编译功能,C#编译器可以检测出所有的公共出口,并在程序运行失败时列出错误信息。
- 灵活。当C#对原始Win32代码进行访问时,有时会使用非安全类型指定的指针。尽管C#代码的默认状态是类型安全的,但是,可以声明一些类或类的方法是非安全类型的。通过这样的非安全类型声明,允许我们使用指针和结构来静态地分配数组。
共有条评论 网友评论