频道栏目
读书频道 > 软件开发 > C# > 精通C# : 第6版
1.2.2 C#的优点
2013-06-22 09:52:14     我来说两句
收藏   我要投稿

本文所属图书 > 精通C# : 第6版

本书是C# 领域久负盛名的经典著作,深入全面地讲解了C# 编程语言和.NET 平台的核心内容,并结合大量示例剖析相关概念。全书分为八部分:C# 和.NET 平台、C# 核心编程结构、C# 面向对象编程、高级C# 编程...  立即去当当网订购

C#的核心语法和Java语法很相似。然而,并不能说C#抄袭了Java。本质上,C#和Java都属于C语言系列(包括C、Objective C、C++等),它们有类似的语法。

实际上,C#的许多语法结构与VB和C++的很多方面都有渊源。例如,与VB类似,C#支持类型属性(property) (与传统的获取方法和设置方法相反)和可选参数。与C++类似,C#允许重载操作符,且支持创建结构、枚举和回调函数(使用委托)。

此外,在浏览本书时,我们很快就会看到C#支持各种函数式语言(如LISP或Haskell)中的很多特性,例如Lambda表达式和匿名类型。此外,由于LINQ的出现,C#支持很多编程结构,在编程语言中显得非常独特。尽管如此,C#的核心始终受到C系列语言的影响。

C#是多种语言的混合体,因此它像Java一样语法简洁,像VB一样使用简单,像C++一样功能强大和灵活。以下是C#核心特征的一部分,其中大部分特点也是其他支持.NET的程序语言所共有的特征。

不需要指针!C#程序通常不需要直接对指针进行操作(尽管在绝对必要时也能自由地进行底层操作,详见第11章)。

垃圾收集器能够自动管理内存。因此,C#不支持delete关键字。

类、接口、结构、枚举和委托都有正式的语法结构。

具有与C++类似的功能,可以简单地重载操作符为自定义类型(例如,不需要操心确保“返回*this以能够链接”)。

支持基于特性的编程。这种方式的开发允许我们注释类型及其成员来进一步限定其行为。例如,用这个[Obsolete]特性标记某种方法后,后面再使用这种方法的时候就会打印自定义的警告信息。

随着.NET 2.0的发布(大约在2005年),C#编程语言被更新以支持很多花哨的东西,主要是以下几项。

构建泛型类型和泛型成员的能力。使用泛型,我们可以构建非常高效的并且类型安全的代码,在和泛型项交互的时候可以定义很多占位符。

支持匿名方法,它允许我们在任何需要委托类型的地方提供内联函数。

使用partial关键字跨多个代码文件定义单个类型的能力(或者如果有必要的话,可以作为内存中的表示)。

.NET 3.5(大约发布于2008年)为C#编程语言增加了更多功能,包括如下特性。

支持强类型的查询(如LINQ),可用于和各种形式的数据进行交互。从第12章开始讲解LINQ。

支持匿名类型,它允许我们建模一个类型的形(shape)而不是其行为。

使用扩展方法扩展既有类型(没有子类)功能的能力。

包含了Lambda操作符(=>),它可以进一步简化.NET委托类型的使用。

新的对象初始化语法,它允许我们在创建对象时设置属性的值。

.NET 4.0(2010年发布)再次为C#添加了少量特性,下面举几个例子。

支持可选的方法参数和命名的方法参数。

支持通过dynamic关键字在运行时动态查找成员。第18章提供了一个统一的方法用于在运行时调用成员,而不必理会成员的实现框架(COM、IronRuby、IronPython或通过.NET反射服务)。

泛型类型的操作将更加直观,因为你可以使用协变和逆变,轻易地在泛型数据和普通的System.Object集合之间进行相互映射。

最后是随.NET 4.5发布的C#当前版本。C#当前版本提供了一对关键字(async和await),极大地简化了多线程和异步编程。如果你使用过以前版本的C#,一定会记得通过副线程调用方法需要大量的含义模糊的代码,并使用不同的.NET命名空间。而现在C#提供了语言关键字来为我们处理这种复杂性,异步调用方法的过程几乎像以同步方式调用方法一样简单。第19章将详细介绍这些话题。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.2.1 基础类库的作用
下一篇:1.2.3 托管代码与非托管代码
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站