指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

C#游戏开发快速入门

3.2  指代数据的名称指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

既然游戏对象属性的本质就是变量,那么脚本中的变量又是什么?在上一章曾向读者说明过,变量实际上就是一个存储数据的单元,而读者在脚本中所看到的“变量”,准确的说应该是“变量名”。“变量名”顾名思义就是指变量的名称,它的作用是指代变量,或者说是指代变量中的数据。就上一节的示例而言,脚本中的变量名是iValue、strValue和fValue,如图3-3所示。图3-3  脚本中的变量名

3.2.1  变量命名规则指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

脚本中的变量名,看起来就是一串字母,但它是有自己的命名规则的,这个规则是被C#语法所规定的,即:变量名只能由字母、数字和下划线组成,且只能以字母或者下划线开头。对这个规则的解释如下:

q  同一字母的大小写,对于变量名是不同的。例如,iValue和IValue是不同的变量名;

q  不能以数字开头。例如,iValue和_Value是合法的,但是1Value是不合法的;

3.2.2  变量命名约定指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

“规则”是必须遵守的,有强制性,不遵守的话就会出现语法上的错误。而“约定”则是要看意愿的,读者可以不遵守约定,也不会犯任何语法上的错误。虽然它没有强制性,但是读者也最好了解一下,因为遵守约定,利于代码的阅读,以及游戏编程人员协同工作。

1.选择有意义的名称

最好为变量选择有意义的名称,否则读者会在很长一段时间以后,忘记当初为什么要命这样一个变量名,以及这个变量名想要指代一个什么样的数据。下面以一个例子来说明:

public bool theBearMakesBigPottyInTheWoods = true;

这个变量名可真长!但它确实清楚的描述了自己,因此即时读者在10年后看到这个变量,仍然能从它的名字上了解到当初什么要命这样一个变量名,以及这个变量名想要指代一个什么样的数据。现在给这个变量换另一个简单点的名字:

public bool potty = true;

这个名字确实简洁多了!毕竟缺少了好多描述性的信息。也许读者在为变量命名的时候,还记得它的作用,但是过几周之后就不一定了。到时候,读者将不得不阅读更多的代码,来推测这个变量名的作用。

2.小写字母开头

使用小写字母作为变量名的首字母,是为了让变量名与类名区别开来,从而使得代码阅读者可以轻松地从名称上,得知名称是变量名还是类名。因为类名通常是使用大些字母开头的,因此最好让变量名以小写字母开头。例如:

Transform;                                             //类名

transform;                                                        //变量名

如果严格的遵守了命名的约定的话,就可以很容易的得知,第一个是类名,第二个是变量名。

提示:在本书后面的章节,读者会看到类的命名约定,那个时候作者会告诉你类名最好以大写字母开头。读者也可以使用其它的命名约定,但是无论使用何种命名约定,目的都是一致的,就是为了提高代码的可读性,便于多名游戏编程人员的协作。

3.2.3  变量名与属性名的些许不同指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

通过本章第一节的学习,读者已经了解到,游戏对象上属性的本质就是变量,而属性名与变量名也是一致的。但是细心的读者可能发现了,属性名与变量名并非完全一致,至少首字母的大小写就不同,如图3-4所示。

图3-4  变量名与属性名不完全一致

其实同样的问题,也发生在了脚本名(类名)与组件名的不一致上。例如,MyScript(脚本名、类名)的组件名是My Script。这或许是微不足道的,但它却体现出了Unity的体贴、周到,读者难道不觉得,Unity所做的这些变动,使得变量名在变成了属性名以后,更加的易读了吗?事实就是如此。指代数据的名称变量命名约定变量名与属性名C#游戏开发快速入门大学霸

Comments are closed.