欢迎光临散文网 会员登陆 & 注册

第 3 讲:初识 C# 概念(二)——补充

2021-03-19 10:14 作者:SunnieShine  | 我要投稿

我们继续学习上一节没有说到的内容。

Part 1 标识符(Identifier)

标识符是一个我们可以直接写到代码里,且是我们自定义的词语、编译器也不管你的符号。在上一节的代码里,SystemProgramMain 均属于标识符。

可能你会问我,SystemMain 这些单词不是固定的吗?是的,但你改成别的东西之后,编译器并不会认为有问题;相反,其它依赖于这些符号的地方才会产生错误信息,但本身 SystemMain 这些符号并不会影响什么。这些我们称为标识符。标识的识读作 zhì,即和“标志”读音一致。

1-1 标识符命名规则

为了编译器可以识别和认定一个自定义的词语是一个标识符,我们有如下的约定:

  1. 由数字、字母、下划线组合构成;

  2. 第一个字符不能是数字,但可以是字母和下划线,且还可以是原义符号 @

  3. 当你想使用关键字的写法作为标识符的时候,需要在单词前面追加原义符号,其它的情况,原义符号则可有可无。原义符号只能有一个,且只能放在最开始。

这个规定我不知道你能否理解。比如说,Program 就是一个正确的标识符、Main 也是、System 也是。另外,在 C# 里,namespace 是一个关键字,但你又确实想把 namespace 作为标识符来使用的话,需要追加原义符号,即改写成 @namespace,编译器就知道这个是一个叫 namespace 的标识符了。

写成语法格式就是:

标识符可以用在自定义的命名空间上、方法名上、类名上,等等其它的地方。你现在学到的程序,由于没有数据类型,因此无法详细介绍。下一节我们就会进入数据类型这一节内容;那么那个时候,你就可以使用自定义的标识符作为变量来使用了。

1-2 标识符命名规范

前面说到了命名规则,它们是强制性的规定,必须要满足的。下面我们来说一下软性规定。这种规定不需要你一定满足,但希望你满足。

标识符有四种基本的命名规则:

  • 驼峰命名法(camelCase)

  • 帕斯卡命名法(PascalCase)

  • 匈牙利命名法(typeCase)

  • 蛇命名法(snake_case)

其中匈牙利命名法需要配合类型作为介绍,因此我们这里就不作说明了。

驼峰命名法是说,如果一个标识符需要多个有意义的单词构成的话,第一个单词的首字母使用小写,而其它单词全部首字母大写,剩下的字符均使用小写的一种写法,比如说 checkWhetherThatGirlIsBeautiful。第一个单词 check 的首字母是小写的,而后续的单词,首字母全部是大写的。

帕斯卡命名法和驼峰命名法只差一点:第一个单词的首字母也得大写。所以帕斯卡命名法的话,前面这个标识符就得写成 CheckWhetherThatGirlIsBeautiful

最后,蛇命名法需要把所有单词全部小写,然后单词之间用下划线分隔,那么就得是 check_whether_that_girl_is_beautiful 这样的。

在 C# 里,我们一般对命名空间、方法名使用帕斯卡命名法。也就是说,我们一般是见不到小写开头的命名空间名称,也一般见不到小写开头的方法名。前面的 Main 方法(我们叫主方法)的 M 也是大写的。学习过 C 语言的朋友应当知道,C 语言里的 main 函数(主函数)是小写起头的。C# 是大写起头,因此需要注意。

标识符在 C# 里起着重要的意义。标识符是大小写敏感(Case Sensitive)的,因而 main 和 Main 是两个不同的标识符。

Part 2 缩进(Indenting)

缩进并非是 C# 首创。C 语言里,缩进就已经存在了。缩进指的是代码里没有执行意义的那些空格。举个例子:

在这段代码里,第 5 行(internal class Program)前面有 4 个空格。为了保证代码层级关系很清晰,我们写代码需要添加这样的空白来保证代码更好看。比如上面这样写代码,我们就可以清晰地知道,namespace Project 包含了 Program 以及里面的这些东西;而 internal class Program 则又包含了 Main 以及里面的东西;Main 方法则又包含了里面的执行逻辑(输出一行文字到屏幕上)。

缩进在划分层级关系的时候相当有用。空白字符是不起到执行意义的,但对我们理解代码来说,非常有意义。

一般来说,缩进分空格(Space)和制表符(Tab)两种,比如例子里,缩进就采用了空格作为缩进字符。你也可以用制表符,不过并不建议你混用两种字符类型,因为空格和制表符都是“看不见”的,混用可能会导致代码出现隐藏的问题。

制表符就是你键盘上左起第一列里写了“Tab”字样的按键。按下这个按键,就会自动插入一个制表符。一个制表符的长度相当于 8 个空格;但在代码里,一般相当于 4 个空格的长度。所以如果插入空格的话,需要按 4 下空格按键,这样就可以插入 4 个空格,和一个制表符长度相同。

Part 3 注释(Comment)

可以从英文名里面看出,注释用的是一个叫做 comment 的单词。comment 原本的意思是评论(当然,现如今很多日本朋友也会把 comment 理解成弹幕的意思,虽然日语的 danmaku 也是弹幕)。这里我们使用“评论”这层释义。

我们可以对代码里的任何地方插入注释。注释里可以写上任何我们想写的话,来作为这行代码(或这段代码)的解释说明或者是评论。举个例子:

其中,所有以 ///// 开头的部分,全部称为注释。C# 的注释一共有四种:

  • 单行注释(// 开头);

  • 多行注释(以 /* 开头,以 */ 结尾,这两个东西可以不在同一行。这两个东西包裹起来的所有部分都是注释);

  • 经典文档注释(/** 开头,以 */ 结尾,和多行注释用法完全一样,只是把开头的 /* 改成 /** 而已);

  • C# 专用文档注释(/// 开头的单行注释文字)。

单行注释以 // 起头,只要写了这个起头的标记,后面的所有东西都会被认为是注释文字。可以从示例里看出,注释文字是随便写的,不需要遵循任何 C# 代码的语法规则,它完全可以是一句英语,甚至写中文也是可以的。这就是注释的一大特殊用途:注释文字是随便写什么都可以的,因为编译器知道是注释,因而它们并不参与编译和程序的运行

而多行注释和单行注释用法完全一样,也是起到补充说明代码的具体逻辑用的。只是用到了 /**/ 作为定界符,因此从这一点来说,它和单行注释不一样。

一般来说,我们都不怎么用多行注释;相反,单行注释用得很多。即使是占据多行文字,我们也会每一行都加上 // 来写单行注释,这样整体看起来就是一个多行注释了:

比如这样。

文档注释我们会在“类”的内容里讲到,这里就不说明了(对于我们现在的内容来说,也没有什么特殊的意义),因为这里的 summary 这些单词是固定的,但它们都有特殊意义,因此在这里说明会显得很臃肿。

Part 4 总结

我们把基本的 C# 概念全部给大家介绍了一通。我不知道你能接受多少,但它们在后续的内容里我们还会提到。如果不怎么记得的话,还可以回来看,所以不必担心今天的内容的难度多大。

实际上,今天就作为理论学习一下就可以,因此不必带有负担。


第 3 讲:初识 C# 概念(二)——补充的评论 (共 条)

分享到微博请遵守国家法律