欢迎来到天天文库
浏览记录
ID:38160592
大小:136.15 KB
页数:5页
时间:2019-06-01
《匈牙利标记法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、下载第二部分编程中使用的约定第3章命名约定随着VisualBasic变得日益复杂,新对象和新的数据类型不断涌现。程序代码常常要引用控件和变量,在复杂的过程中,很难完全理解代码中出现的所有元素。如何确定某个语句是引用一个变量还是控件呢?如果没有某种约定将变量与控件区分开来,代码就很难阅读。例如,你能说清下面这个语句的确切含义吗?TotalDue=LineItemTotal-Discount+TotalTax如果没有办法将不同数据类型的变量与各种不同对象区分开来,你就无法知道该语句是干什么的。TotalD
2、ue究竟是个变量还是个文本框呢?抑或它是个标准控件呢?同样的问题也适用于其他项目。如果LineItemTotal是个变量,那么它是什么类型的变量呢?是货币、单精度数值,还是变码呢?若要使代码更加直观明了(这始终是个重要的目的),并且减少编程出错的机会,就需要一个简便的方法,将变量与控件区分开来。你需要使它能够非常容易地确定变量的数据类型和控件的准确类型。3.1数据类型后缀最初,区分数据类型所用的方法之一是使用Basic的数据类型后缀。数据类型后缀是用来代表某个数据类型的符号。你可以将这个符号附加在变量
3、名的结尾处。例如,字符串(String)数据类型的后缀是美元符号($)。使用数据类型后缀,你可以创建FirstName$和Address$这样的变量名。数据类型后缀存在许多不足之处。最明显的缺点是这些后缀并不总是那么直观。你能知道%、&、!和#等后缀对应的是什么数据类型吗?它们分别是指Integer(整型数)、Long(长整型数)、Single(单精度实数)和Doable(双精度实数)。要记住这些后缀非常困难,因此人们不喜欢使用这种约定。请看下面这些变量:¥Send(Long)—代表已经发送的消息的数
4、量计数。¥Send(Handle)—Comm(通信)界面的句柄。句柄实际上是长整型数。将这些变量缩短为Send&并不能帮助你区分这两个变量。3.2匈牙利标记法软件开发人员从数据类型后缀改为使用单字符前缀(例如DimIwidthAsLong和DimiHeightAsInteger)。前缀的作用更有意义,因为它们通常比符号更直观,而且可以使用的前缀数目更多。单字符前缀变得流行起来,但这是从一开始就肯定会流行的。单字符前缀只有26个字符可以使用(但比可以使用的符号数目要多),不过不同类型的变量和对象很多,其
5、中许多变量和对象都共用相同的首字母。更好的命名约定最终代替了单字符前缀。这种命名约定称为匈牙利标记法,它使用3字符24计计第二部分编程中使用的约定下载前缀来表示数据类型和控件类型,这种命名约定之所以称为匈牙利标记法,部分原因是它的发明人查尔斯·西蒙尼祖籍是匈牙利,部分原因是这些前缀常常使变量名看上去像个外文字。随着前缀所表示的信息的增加,前缀的长度也会变长,比如作用域或变量是个数组时,就会出现这种情况。虽然标准前缀通常为3个字符,随着修饰符的增加,使用较长前缀的命名约定也称为匈牙利标记法,匈牙利标记法
6、是个总的概念,而不是特定的实现方法。在匈牙利标记法中,一个独一无二的3字符前缀被赋予每个数据类型和每个控件类型。3个字符可以实现充分的多变性,并使前缀合乎逻辑和直观。观察下面的Dim语句,你会看到前缀是如何直观地与赋予变量的数据类型相匹配的:DimstrNameAsStringDimintAgeAsIntegerDimlngMilesAsLongDimcurSalaryAsCurrency现在让我们再一次观察一下前面给出的代码语句:TotalDue=LineItemTotalÐDiscount+Tot
7、alTax下面的每个语句都可能与上面这个语句相等价。这些语句已经加上了字符前缀。另外,为了清楚起见,引用的控件显示了它们的默认属性。txtTotalDue.Text=curLineItemTotalÐtxtDiscount.Text+curTotalTaxcurTotalDue=curLineItemTotalÐcurDiscount+curTotalTaxtxtTotalDue.Text=txtLineItemTotal.TextÐtxtDiscount.Text+_txtTotalTax.Text
8、如你所见,这些前缀使得代码语句更加容易理解。只要阅读一下语句,就能知道发生的一切,不必观察变量的说明,就能确定代码正在进行的操作。注意用匈牙利标记法来表示数据类型和数据作用域比其他问题更能使程序员产生观点上的分歧。我坚信应该使用匈牙利标记法,并且深深体会到它带来的好处。3.2.1表示变量数据类型的前缀表3-1列出了一些前缀,可以用来表示变量的数据类型。表3-1用作变量数据类型的前缀数据类型前缀举例Boolean(布尔值)blnblnLoggedInCur
此文档下载收益归作者所有