构建高质量的C#代码
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 认识C#编程语言

使用一种编程语言需要理由吗?

需要,而且可能有很多。

当我们确定了软件项目的需求和运行环境,也就基本选定了软件开发的平台和编程语言。我们说过,每一种编程语言都有其擅长的领域,所以,当你确定选择了一种编程语言以后,就不需要左右徘徊。深入地学习一种编程语言,你就能将它的威力发挥到最大。

如果说在项目中使用某种编程语言是项目需求的运行环境决定的,那么,我们学习、使用并喜欢一种编程语言就是我们自己的自由了。

喜欢一种编程语言需要理由吗?

并不需要太多理由,不过我想,只有你深入学习并精通一种编程语言以后,你才有可能真正地去喜欢它。

编程语言不是程序员的战场!

让一切编程语言之间相互诋毁的声音从耳边消失,静下心来,首先深入学习一门编程语言,真正了解它、使用它。要用,就要用得精彩,就要用出高质量,然后,你再学习多少门编程语言都可以。其实编程就是这么简单。

下面我们就来认识本书的主角之一——C#编程语言。

1.3.1 C#简史

要谈C#编程语言,不得不从微软.NET战略开始讲起。

当Windows操作系统版本逐渐增多,软件开发越来越复杂,软件的需求越来越多样化的时候,微软决定启动.NET战略,在这一系列的战略之中就包括创造一个全新的软件架构(Framework),用来简化软件的开发和运行环境。虽然这个软件架构理论上讲是跨平台的,但到目前为止,它只能很好运行于Windows操作系统。在创建.NET架构的同时,现有的开发语言不能满足高效开发的需求,这时就需要一种全新的编程语言,C#随即诞生了。

C#参考了C和C++以及Java等编程语言的优点,成为一种现代的、面向对象的,以及类型安全的编程语言。重要的是,C#与.NET平台无缝地结合在一起,是.NET平台软件开发人员的首选编程语言。

C#编程语言的版本是与.NET架构同步升级的,到了.NET Framework 2.0,也就是C#2.0版本的时候,无论是.NET架构,还是C#编程语言都已经是非常成熟的了,特别是在添加了泛型等重要的编程元素以后。

此外,C#除了可以用于Windows操作系统中的本机程序或Web项目的开发以外,还可以用在Windows Phone应用项目的开发中。

本书的示例将基于.NET Framework 4.0,并使用Visual C#2010学习版(Visual C#2010 Express)作为开发工具,读者可以在微软官方网站免费下载和使用这个版本。安装完成后请不要忘记注册,否则只能使用30天,注册当然也是免费的。

现在,我们需要澄清以下两个概念。

● .NET:.NET实际上是微软公司一系列战略的统称,而在本书中,则专指.NET Framework。这是一个软件开发与运行的软件架构和平台,其中包含了数万个类、结构、枚举等功能强大的软件开发与运行资源库,如果没有特殊说明,本书后面的“.NET”这一术语就是特指这一软件平台。

● C#:为了不要让大家总是把C#读作“C井号”,我们还是需要确认一下,C#的英文应该读作“C Sharp”。

1.3.2 C#关键字及相关标识符

关键字,作为组成编程语言中语言体系的一系列标识符,它们用于组成代码的各个部分,有着特殊的、专用的含义。当我们在编程中需要为自己的代码元素起名时,请注意不要使用这些关键字,除非你存心跟自己过不去?。

C#编程语言中的关键字包括:

abstract         as             base           bool           break
byte           case           catch           char           checked
class           const           continue        decimal         default
delegate         do             double          else            enum
event           explicit         extern          false           finally
fixed           float           for            foreach         goto
if             implicit         in             int             interface
internal         is             lock           long           namespace
new           null            object          operator         out
override         params         private          protected        public
readonly        ref            return          sbyte           sealed
short           sizeof          stackalloc       static           string
struct          switch          this            throw          true
try            typeof          uint            ulong          unchecked
unsafe          ushort          using           virtual          void
volatile         while

你可能发现了,这些关键字都是小写的,没错,C#的关键字的确都是小写的,而且在C#的代码中,也是区分字母大小写的,如Abc和abc就是两个不同的标识,this是关键字,但This不是关键字。

请注意,一般情况下,不要只依靠字母的大小写来区分标识符。

除了关键字,还有一些特殊的标识符,我们可以称为保留字,它们只用于一个特定的情况下,如get和set用于定义类的属性(property)的“读/写”代码块,还有用于预处理的#define、#if等标识符,我们将会在后面的学习中慢慢认识它们。这些内容也不应该使用在我们创建的各种代码元素的名称上。

1.3.3 C#中的语句和表达式

语句是代码中基本的执行单元,C#的单条语句由一个分号(;)作为结束。而在一些语句结构中,需要将多于一条的语句放在一起作为一个整体,这样就形成了一个代码块(又称为代码段和代码结构,而在有些结构中称为复合语句),它们包含在一对“{”和“}”中,结尾并不需要使用分号作为结束标识。本书中我们将统一使用“代码块”这一术语。

表达式(expression)是运算符与操作数的组合序列,如“num = 5”就是一个赋值运算表达式,其功能是将数值5赋给num标识符,而表达式最终也都会有一个值,如“num=5”整个表达式的值就是num的值,即5。此外,对于比较运算表达式,如“num>3”,如果num的值是5的时候,表达式的值就是true(真),即表示比较结果成立。在后续的学习中,我们还将看到更多类型的表达式。

另外,C#中的一条语句可以分布在多行中,但我们应尽量确保一条语句或一个表达式的直观,这样更便于代码的阅读。

多条语句也可以放在一行,因为它们是使用分号作为结束标志的,但我们一般情况下也不应该这么做,原因很简单,同样是为了便于代码的阅读。