在 Visual Basic .NET 或 JScript 代码中使用早期绑定
2004-10-25 00:22
501 查看
以往,开发人员喜欢使用 Visual Basic、VBScript 和 JScript 的原因之一就是它们所谓“无类型”的性质。变量不需要显式类型声明,并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配时,转换将自动执行。不过,这种便利会大大损害应用程序的性能。
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。
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。
相关文章推荐
- 在 Visual Basic .NET 或 JScript 代码中使用早期绑定
- XML 文件:使用 JScript、C# 和 Visual Basic.NET 扩展 XSLT
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程
- 在Visual Basic.NET使用ADO访问数据库(转for各种数据库连接)
- 在Visual Basic .NET中使用存储过程
- 与Visual Basic .NET一起使用.NET Framework
- 使用 Visual Basic .NET 访问注册表
- 同时使用 Visual Basic 6 和 Visual Basic.NET 的最佳做法
- 演练:使用 Visual Basic .NET 创作组件
- 使用 Visual Basic .NET 进行多线程编程
- 对《防止对 Visual Basic .NET 或 C# 代码进行反相工程》的思考
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程
- HOW TO:使用 Visual Basic .NET 在 ASP.NET 中创建自定义的错误报告页
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程
- 使用 Visual Basic .NET 生成 Office COM 外接程序
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 向 Visual Studio 2005 Tools for Office 迁移时,将 VBA 代码转换为 Visual Basic .NET
- HOW TO:使用嵌套 Repeater 控件和 Visual Basic .NET显示分层数据