在 Visual Basic .NET 或 JScript 代码中使用早期绑定
来源:互联网 发布:mac版qq有远程协助吗 编辑:程序博客网 时间:2024/05/17 06:26
以往,开发人员喜欢使用 Visual Basic、VBScript 和 JScript 的原因之一就是它们所谓“无类型”的性质。变量不需要显式类型声明,并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配时,转换将自动执行。不过,这种便利会大大损害应用程序的性能。
Visual Basic 现在通过使用 Option Strict 编译器指令来支持类型安全编程。为了向后兼容,默认情况下,ASP.NET 不启用该选项。但是,为了得到最佳性能,强烈建议在页中启用该选项。若要启用 Option Strict,请将 Strict 属性包括在 @ Page 指令中,或者,对于用户控件,请将该属性包括在 @ Control 指令中。下面的示例演示了如何设置该属性,并进行了四个变量调用以显示使用该属性是如何导致编译器错误的。
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 代码中使用早期绑定
- 使用 JScript、C# 和 Visual Basic .NET 扩展 XSLT
- 在 Visual Basic .NET 中使用 CallWindowProc API 执行程序集代码
- 在 Visual Basic .NET 中使用存储过程
- 在Visual Basic .NET中使用存储过程
- 在 Visual Basic .NET 中使用存储过程
- 在 Visual Basic .NET 中使用存储过程(2)
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 在Visual Basic中使用WinSock控件
- 在Visual Basic中使用数据库
- 如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据
- 如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据
- HOW TO:使用 Visual Basic .NET 在 ASP.NET 中创建自定义的错误报告页
- HOW TO:使用 Visual Basic .NET 在 ASP.NET 中创建自定义的错误报告页
- 适当地使用公共语言运行库的垃圾回收器和自动内存管理
- 如果有大型 Web 应用程序,可考虑执行预批编译
- 必要时调整应用程序每个辅助进程的线程数
- 使用 HttpServerUtility.Transfer 方法在同一应用程序的页面间重定向
- 使请求管线内的所有模块尽可能高效
- 在 Visual Basic .NET 或 JScript 代码中使用早期绑定
- 将调用密集型的 COM 组件迁移到托管代码
- 避免单线程单元 (STA) COM 组件
- 将 SQL Server 存储过程用于数据访问
- 将 SqlDataReader 类用于快速只进数据游标
- 选择适合页面或应用程序的数据查看机制
- 关于诚实
- 只要可能,就缓存数据和页输出
- 对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺