作者:杜勇
描述:在模块或窗体,为变量和传给过程的参数,设置缺省数据类型,以及为其名称以指定的字符开头的Function和PropertyGet过程,设置返回值类型。
一、语法:
DefType letterrange[,letterrange]
所需的letterrange参数遵循下述语法:
letter1[-letter2]
letter1和letter2参数指定设置缺省数据类型的名称范围。每个参数都是指变量,参数和Function过程,或PropertyGet过程名称的首字母,且参数可以是字母表中的任意字母。letterrange中不区分字母的大小写。
二、说明:
Type可以换成下列缩写:
|
缩写 |
数据类型 |
| Bool | 布尔型 |
| Byte | 字节型 |
| Int | 整型(Integer) |
| Lng | 长整型(Long) |
| Cur | 货币型(Currency) |
| Sng | 单精度型(Single) |
| Dbl | 双精度型(Double) |
| Date | 日期型(Date) |
| Str | 字符串型(String) |
| Obj | Object |
| Var | 变体型(Variant) |
语句的名字就确定相应的数据类型:
例如整型:DefInt
Deftype语句只能在模块或窗体使用(即不能在过程内使用)。Deftype语句只在使用该语句的模块或窗体中有效。而其它模块或窗体不受影响。如果不用Deftype语句显式地声明,则所有变量、参数、Function过程、以及PropertyGet过程的缺省数据类型都是Variant。
对于用Deftype语句声明的变量等,可以使用Dim语句重新声明,覆盖这种缺省数据类型。
三、应用举例:
该示例演示了Deftype语句的用法,来设置那些名称是以指定字符开头的变量。建立一标准工程,在窗体上添加一命令按钮,将下面的程序粘贴过去。
DefInt A-K'将名称以A至K开头变量的缺省数据类型设为Integer类型。
DefStr L-Z'将名称以L至Z开头变量的缺省数据类型设为String类型。
Dim Pai As Double '赋给一个Double类型。
Private Sub Form_Activate()
Aint = 4
AVar = "错误" '导致"Type mismatch"错误。
MyString = "你好"
Pai = 3.14 '允许指定为一个Double数。
Text1.Text = Aint
Text2.Text = MyString
Text3.Text = Pai
End Sub
运行程序,首先提示“Type mismatch”错误,说明A开头的变量已被声明成整型(Integer),不能用字符串赋值。将AVar = "错误"删除,此时Text1.Text显示4,Aint为整型(Integer);此时Text2.Text显示你好,MyString为字符串型(String);Pai由于用Dim语句重新声明为双精度型(Double),Text3.Text显示3.14。