目录
2.1 一个简单的C#程序
SimpleProgram的补充说明
2.2 标识符
2.3 关键字
2.4 Main:程序的起点
2.5 空白
2.6 语句
块
2.7 从程序输出文本
2.2.1 Write
2.7.2 WriteLine
2.7.3 格式化字符串
对齐说明符
2. 格式字段
3. 标准数字格式说明符
编辑 2.8 注释:为代码添加注解
2.8.1 关于注释的补充
2.8.2 文档注释
编辑2.8.3 注释类型总结
本篇文章将为学习C#打基础。会出现广泛的代码用例,我们先来看看C#程序的样子,还有它不同部分代表什么意思。
我们从一个简单程序开始,逐个解释它的各个组成部分。这里将会介绍一系列主题,从C#程序的结构到产生屏幕输出程序的方法。
有这些源代码作为初步铺垫,我们可以再余下的文字中自由的使用代码示例,因此与后面的详细阐述一两个主题不同,本章将接触到很多主题并给出解释。
让我们先观察一个简单的C#程序。完整的源程序在图2-1上面的阴影区域中。如图所示。代码包含在一个名为SimpleProgram.cs的文件里当你阅读它时,不要担心能否理解其中的所有细节。表2-1对代码进行逐行描述。在左下角的阴影区域展示了程序的输出结果,右半边是程序各部分的图形化描述。
C#程序由一个或多个类型声明组成。本书的大部分内容都是用来解释可以在程序中创建和使用不同类型。程序中的类型可以再任何顺序声明。在SimpleProgram中,只声明了class类型。
命名空间是与某个名称相关联的一组声明。SimpleProgram使用两个命名空间。他创建了一个名称为Simple的心的命名空间,并在其中声明了其类型(类program),还使用了System命名空间中定义的Console类。
要编译这个程序,可以i使用Visual Studio或者命令行编译器。如果使用命令行编译器,最简单的形式是在命令窗口使用下面的命令:
csc SimpleProgram.cs
在这条命令中,csc是命令行编译器的名称,SimpleProgram.cs是源文件的名称。CSC是指“C-Sharp编译器”。
标识符是一种字符串,用来命名变量、方法、参数和许多后面将要阐述的其他程序结构。
可以通过把有意义的词语链接成一个单独的描述性名词来创建文档化(self-documenting)
的标识符,可以使用大写和小写字母(如CardDeck、PlayersHand、FirsName和SocialSecurityNum)。某些字符能否在标识符中特定的位置出现是有规定的,这些规定如图2-2所示。
标识符区分大小写。列如,变量名myVar和MyVar是不同的标识符。
举个例子,在下面的代码片段中,变量的声明都是有效的,并声明了不同的整型变量。但是使用如此相似的名称会使代码更容易出错更加难调式,后续需要调试代码的人会很不爽。
关键字是用来定义C#语言的字符串记号。表2-2列出了完整的C#关键字表。
关于关键字,一些应该知道的内容如下。
上下文关键字是仅在特定语言结构中充当关键字的标识符。在那些位置,他们有特别的含义。两者的区别是,关键字不能被用作标识符,而上下文关键字可以在代码的其他部分被用作标识符。上下文关键字如表2-3所示。
每个C#程序必须有一个带有Main方法(函数)。在先前所示的SimpleProgram程序中,他被声明在Program类中。
Mian最简单形式如下:
static void Main()
{
更多语句
}
程序中的空白指的是没有可视化输出的字符串。程序在源代码中使用空白将被编译器忽略,但是代码更清晰易读。空白字符包括:
列如,下面的代码会被编译器完全相同地对待而不管他们表面的区别。
C#的语句和C、C++的语句非常相似。本书将介绍语句的常用形式,详细的语句形式将在第9章介绍。
语句是描述一个类型或告诉程序去执行某个动作的一条源代码指令。
例如,下面的代码是由两条简单语句组成的序列。第一条语句定义了一个名称为var1的整型变量,并初始化它的值为5;第二条语句将变量var1的值打印到窗口。
块是一个由成对大括号包围的0条或多条语句序列,它在语法上相当于一条语句。
可以使用之前示例中的两条语句创建一个块。用大括号把语句包围起来,如下面的代码所示。
关于块,一些应该知道的重要内容如下。
控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接受输入。BCL提供一个名称为Console的类(在System命名空间中),该类包含了输入和输出数据到控制台窗口的方法。
Write是Console类的成员,它把一个文本字符串发送到程序的控制台窗口。最简单的情况下下,Write将文本的字符串字面量发送到窗口,字符串必须使用双引号括起来。
下面这行代码提示了一个使用write成员的示例:
另外一个示例是下面的代码,发送了3个文本字符串到程序的控制台窗口:
WriteLine是Console的另外一个成员,它和Write实现相同的功能,但会在每个输出字符串的结尾添加一个换行符。
列如,如果使用先前的代码,用WriteLine替换掉Write,输出就会分隔在多行
System。console.WriteLine("This is text1");
System。console.WriteLine("This is text2");
System。console.WriteLine("This is text3");
这段代码在控制台窗口产生如下输出:
贯穿本书的示例代码会使用WriteLine方法来显示值。每次,我们都使用由大括号包围整数组成的简单替代标记形式。
然而在很多时候,我们更希望以合适的格式而不是一个简单的数字来呈现文本字符串的输出。列如,吧值作为货币或者某个小数位数的定点值来显示。这些都可以通过格式化字符串来实现。
列如,下面的代码由两条打印值500的语句组成。第一行没有使用任何其他格式化来打印数字,第二行的格式化字符串指定了数字应该被格式化化成货币。
两条语句的不同之处在于,格式项以格式说明符包括了额外信息。大括号内的格式说明符的语法由三个字段组成:索引号、对齐说明和格式字段(format field)。语法如图2-3所示。
格式说明符的一项是索引号。如你所知,索引指定了之后的格式化字符串应该格式化列表中的那一项。索引号是必须的,并且列表项的数字必须从0开始。
对其说明符表示了字段中字符的最小宽度。对齐说明符有如下特性。
列如,如下格式化int型变量myInt的值的代码显示了两个格式项,在第一个示例中,myInt的值以在10个字符的字符串中右对齐的形式进行显示;第二个示例中则是左对齐。格式项放在两个竖杠中间,这样在输出中就能看到他们的左右边界。
值的实际表示可能会比对齐说明符指定的字符数多一些或少一些;
格式字段指定了数字应该以那种形式表示。列如,应该被当做货币、十进制数字、十六进制数字还是定点符号来表示?
格式字段有三部分,如图2-4所示。
表2-4总结了9种标准数字格式说明符。第一列在说明符后列出了说明符字符。如果说明符根据他们的大小写会有不同的输出,就会标注为区分大小写。
你已经见过单行注释了,所以这里将讨论第二中行内注释------带分隔符的注释,并提及第三种类型,成为文档注释。
列如,如下代码展示了一个跨多行的带分隔符的注释。
关于注释,有其他几点重要内容需要知道。
下面的注释方式是不正确的:2.8.3
C#还提供第三种注释:文档注释。文档注释包含XML文本,可以用于产生程序文档。这种类型的注释看起来像单行注释,但是他们有三个斜杠而不是两个。文档注释会在25章节阐述。
行内注释是被编译器忽略但被包含在代码中已说明代码的文本片段。程序员在他们的代码中插入注释已解释和文档化代码。表2-5总结了注释的类型。