点击或拖拽改变大小

Functions.Type 方法 (String)

X#
确定以字符串表示的表达式的数据类型。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
[NeedsAccessToLocalsAttribute(FALSE)]
 FUNCTION Type(
	cString AS STRING
) AS STRING
查看代码

参数

cString
类型:String
包含要确定类型的表达式的字符串。
它不能包含未声明的变量或不打算用于宏的函数。
如果cString不存在,则返回"U"。

返回值

类型:String
以下字符之一: 返回值 含义 A 数组 B 代码块 C 字符串 D 日期 L 逻辑值 M 备注 N 数值 O 对象 U NIL、局部变量或静态变量 UE 语法错误 UI 不确定错误
备注
Type()使用宏运算符(&)来确定参数的数据类型;因此,您不能使用它来确定未声明变量或不打算用于宏的函数的数据类型。
对于这些表达式,请使用UsualType()。
提示 提示:
数组引用:对私有和公共数组的引用返回"A"。对数组元素的引用返回元素的类型。 If():
要返回If()表达式的适当数据类型,Type()会评估条件,然后返回评估路径的类型。
如果If()条件或评估路径无效,Type()返回"UE"。 测试参数:Type()只能测试使用PARAMETERS语句接收的参数的有效性。测试作为FUNCTION或PROCEDURE声明的一部分声明的参数总是返回"U",因为局部参数在符号表中没有符号。
要确定参数是否被跳过或在参数列表末尾被省略,请将其与NIL比较或使用IsNil()。
示例
这些示例演示了Type()调用的各种结果:
X#
 1? Type('Substr("Hi There", 4, 5)')        // C
 2? Type("UdF()")                    // UI
 3? Type('If(TRUE, "true", 12)')            // C
 4PROCEDURE NilParameters()
 5    PARAMETERS cParam1, nParam2, uParam3
 6    IF cParam1 = NIL
 7        ? "未传递第一个参数"
 8        cParam1 := "默认值"
 9    ENDIF
10    IF Type("nParam2") = "U"
11        ? "未传递第二个参数"
12    ENDIF
13    IF IsNil(uParam3)
14        ? "未传递第三个参数"
15    ENDIF
16.
17. <paramref name="Statements" />
18.
这个示例展示了Type()、ValType()、UsualType()和UsualVal()之间的区别。注意,Type()在评估之前会宏展开字符串的内容,而UsualType()不会:
X#
1num := 10                    // 未声明的变量
2? Type("num + num")            // N
3? ValType(num + num)        // N
4? UsualType("num + num")        // 7 (代表STRING)
5? UsualVal(num + num)        // 20
参见