您所在的位置: 首页 > 读书频道 > 设计开发 > .Net系列 >

1.4.2 C# 的主要特征

http://book.51cto.com  2008-07-29 09:34  郝春强/池同柱编著  中国电力出版社  我要评论(0)
  • 摘要:《Visual C#2005基础与实例教程》第1章.NET与C#,这一章将从宏观角度介绍.NET战略、.NET平台以及 C# 语言。对于初次接触.NET的读者来讲,建立对.NET和C# 的全局认识至关重要,本小节为大家介绍的是C# 的主要特征。
  • 标签:Visual  C#  .NET  C++  实例教程  Visual C#2005基础与实例教程

1.4.2  C# 的主要特征

C#专门为.NET量身定做,它是.NET平台中最重要的语言。

有必要再次提起微软对C#的定义。“C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。”这个定义高度精确地描述了C#的主要特征。

1.简单

C#是唯一没有在设计思路中加入前辈语言某种遗传的新事物,并且它在设计时考虑了多数实际应用的需要。因此,C#对于开发人员来讲较C++等更加简单。

例如,字符串统一由数据类型string来定义,结束了C++中对字符串处理的混乱局面。甚至还新增加了专门用于处理金融计算的decimal数据类型,在这之前,开发人员不得不自己构造一种类型来处理同样的事情。

C#还尝试着简化句法,使其更加一致、逻辑性更强,同时还去掉了C++里一些复杂的特性。例如,C#不支持多继承,如同Java一样。C#还去掉了指针(pointer)。作为一门类型安全的语言,C#不允许对内存的直接操控,所以指针在C#里就不再需要了(如果非要使用指针,也是可以的,但需要特别标记)。

C++中的头(header)文件在C#中也被去掉了,声明与定义集中在同一个文件中,使得代码更容易维护。(::)和(->)这两个域操作符和参照操作符也被单个操作符“.”所取代。

通过使用.NET的无用存储单元收集器,C#还让开发人员摆脱了内存管理的难题,不再为避免内存泄露而伤透脑筋。

2.现代的语言

C#是现代的语言,它融合了VB的快速开发能力和C++的强大与灵活的能力。C++常常被用来编写架构和底层应用,而VB则被用来编写商业应用程序。C#将VB的快速开发模型(Rapid Development Paradigm)带到了C++开发人员的世界,现在,在C#中可以使用丰富且功能强大的窗体控件,就像VB开发人员多年前所使用的一样。

C#对char、byte、int和bool类型都进行了明确的区分,这更加符合逻辑,可以避免在C++ 中极易出现的代码错误与隐患。

例如,下面的代码在C++中是完全正确的,但在C#中不能通过编译,因为if语句要求判断一个布尔表达式的值是true还是false,它从不认为int型的1就是true。

 int Counter=1;
if (Counter=1) { //do something }

3.面向对象

尽管很多人都说C++已经是面向对象的了,但还不够彻底,一个明显的例证就是C++中还可以出现全局变量。这也是历史的原因,C++是从C语言扩展而来的,它不能够抛弃C语言的面向过程的特性。

C#是彻底的面向对象的语言,将面向对象提高到了另一个层次。即使简单的数据类型都可以被当作对象来处理,这就意味着int会有一个与之相关联的方法。例如可以使用ToString()方法来为int获取一个字符串值,如下所示:

int Counter=14;
string s = Counter.ToString();
此外,字符串同样被作为对象来处理,它支持多种方法。例如Trim、ToUpper、ToLower和许多其他的方法,下面的代码就是将“hello world”转换为大写后输出的。
 Console.Write("hello world".ToUpper());


4.类型安全

C#是类型安全的(Type-Safe),这意味着很多事情。首先C#是强类型语言,声明变量时一定要指定变量的类型,赋值时如果类型与变量类型不符,编译时将出错。这就是说,一切类型错误在程序编译阶段就被检查出来,在程序运行期间,不会有任何类型错误的发生。其次,代码只能访问被授权可以访问的内存位置。例如,在C++里,可以声明一个有三个元素的数组,但是可以访问这个数组的第四个元素,在C#中就不会出现这样的问题。最后,C#是自动管理内存的,不允许使用指针直接操作内存。

5.强大

C#不允许使用指针是出于类型安全考虑的,但是并不意味着绝对不能使用指针。如果有人对指针有所偏好,就可以使用unsafe这个关键字来标示某段代码,使其跳过.NET框架的类型安全检查,在这段代码中就可以使用指针直接操控内存了。这让C#难以置信地强大,同时这也是C#超越VB.NET的一个方面。

由此,我们对C#语言的信心更加坚定,尽管.NET框架并没有限定使用某种特定的语言,但C#无可置疑的是在.NET下进行开发的首选语言。现在我们知道,除了C#与.NET与生俱来的密切关系外,还有更多的理由促使我们做出这样的选择。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
体验Visual Studio 2008的魅力
Visual Studio 2005开发基础
C++是垃圾语言?!
VC++基础开发专题
C#实用基础教程
 
 验证码: (点击刷新验证码)   匿名发表
  • Linux C编程实战

  • 作者:童永清
  • 本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,集趣味性、实战性于一体的160多段代码实例,帮助读者快速掌握在Linu..
Copyright©2005-2008 51CTO.COM 版权所有