关于VisualBasic9.0的动态标识符

关于VisualBasic9.0的动态标识符,第1张

关于VisualBasic9.0的动态标识符,第2张

今年动态语言发展很快,各种脚本语言都有动态语言的一些特点。动态语言以其灵活的语法和丰富的运行时行为赢得了很多人的青睐。在。net阵营,C#一直扮演着静态语言的角色。虽然3.0的语法变化比较激进,但还是注重了编译时的类型检查和约束。动态特性使用不好会导致更多的运行时问题,不容易保证程序的可靠性,但它对提高开发效率的作用是毋庸置疑的。Visual Basic 9.0是Visual Studio中允许你主宰动态和静态领域的语言,允许你在程序中自由选择自己喜欢的风格。
Visual Basic从1.0开始就支持后期绑定,即根据对象的运行时类型信息而不是定义时的类型信息来使用对象。比如:

dim l As Object = New ArrayList()l . Add(12)l . remove at(0)

我们知道Object没有Add或RemoveAt方法,但是运行时类型ArrayList有,所以Visual Basic允许你在运行时检查是否有对应的操作并支持。由于这个过程已经在运行时完成,我们应该允许这个后期绑定操作本身在运行时确定。这种语法增强被称为动态标识符。例如,我们可以这样写:

dim l As Object = New ArrayList()l .(" Add ")(12)l .(" remove at ")(0)

我们可以看到,此时方法名Add和RemoveAt已经是字符串了,当然也可以是包含字符串的变量!所以你甚至可以写这样的代码:

长度(控制台。ReadLine())(12)l .(" Remove " & " At ")(0)

这样,在动态过程中可以完全确定作为方法名的标识符。名字如此,那么类型名呢?应该是。我们可以这样写:

Dim l As Object = New ("ArrayList ")()

这样,变量L的类型将根据运行时字符串的值来确定。假设下列子程序,动态标识符也可以使函数的参数动态化:

Sub Method1(可选arg1作为字符串,可选arg2作为字符串)

在运行时,我们可以动态地指定将值赋给哪个参数:

如果a > 0,则arg string = " arg 1 " Else arg string = " arg 2 " method 1({ arg string }:= a . ToString())

注意:=符号前的花括号表示参数名的动态组合。利用动态标识符的特性,Visual Basic 9.0可以在不使用复杂的反射语法的情况下完成许多需要反射和运行时类型信息的任务,这使得Visual Basic成为解决手头小问题的帮手。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 关于VisualBasic9.0的动态标识符

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情