Visual Basic 现在通过使用 Option Strict 编译器指令来支持类型安全编程。为了向后兼容,默认情况下,ASP.NET 不启用该选项。但是,为了得到最佳性能,强烈建议在页中启用该选项。若要启用 Option Strict,请将 Strict 属性包括在 @ Page 指令中,或者,对于用户控件,请将该属性包括在 @ Control 指令中。下面的示例演示了如何设置该属性,并进行了四个变量调用以显示使用该属性是如何导致编译器错误的。
<%@ Page Language="VB" Strict="true" %>
<%
Dim B
Dim C As String
' This will cause a compiler error.
A = "Hello"
' This will cause a compiler error.
B = "World"
' This will not cause a compiler error.
C = "!!!!!!"
' But this will cause a compiler error.
C = 0
%>
JScript .NET 也支持无类型编程,但它不提供强制早期绑定的编译器指令。若发生下面任何一种情况,则变量是晚期绑定的:
被显式声明为 Object。
是无类型声明的类的字段。
是无显式类型声明的专用函数或方法成员,并且无法从其使用推断出类型。
最后一个差别比较复杂,因为如果 JScript .NET 编译器可以根据变量的使用情况推断出类型,它就会进行优化。在下面的示例中,变量 A 是早期绑定的,但变量 B 是晚期绑定的。
var A;
var B;
A = "Hello";
B = "World";
B = 0;
为了获得最佳的性能,当声明 JScript .NET 变量时,请为其分配一个类型。例如,var A : String。
.NET编程中的变量类型与绑定问题
博客介绍了.NET编程中VB和JScript.NET的变量类型声明及绑定情况。VB代码中不同类型变量赋值会引发不同编译结果,JScript.NET支持无类型编程,变量存在早期和晚期绑定情况,为获最佳性能,声明变量时应分配类型。
3541

被折叠的 条评论
为什么被折叠?



