用户
 
密码
虚 拟 主 机
主 机 托 管
主 机 租 用
应 用 服 务
虚拟独立服务器



ASP.NET 功能列表
ASP.NET 主机FAQ
ASP.NET 快速入门
   什么是ASP.NET/优点何在?
可支持语言
ASP.NET Web窗体
  Web窗体介绍
ASP.NET Web服务
  Web服务介绍
ASP.NET 应用程序
  应用程序概述
缓存服务
  缓存概述
配置
   配置概述
配置文件格式
安全性
  安全性概述
本地化
     国际化概述 Overview
设置区域性和编码
本地化ASP.NET应用程序
使用资源文件
跟踪
    跟踪概述
跟踪记录到页输出
应用程序级跟踪记录
性能
    性能概述
性能优化提示
测量性能
ASP到ASP.NET的移植
     移植概述
语法和含义
语言兼容性
COM互操作性
示例应用程序
   个性化入口
电子商务店面
您的位置:首页>虚拟主机>ASP.NET

语言兼容性

ASP 中使用的 VBScript 与 ASP.NET 中使用的 Visual Basic .NET 语言之间的差别是到目前为止所有潜在移植问题中最广泛的。在此发布版中,不仅 ASP.NET 从 VBScript 语言分离出来成为“真正的”Visual Basic,而且 Visual Basic 语言本身也经历了重大改变。这些改变旨在:

● 通过将具有相似用途的语言功能集中在一起,使语言更具一致性。
● 通过重新设计使 Visual Basic 不够“基本”的功能来简化语言。
● 通过重新设计向程序员隐藏了太多重要细节的功能,提高可读性和可维护性。
● 通过执行更好的做法(如类型安全编程)来提高可靠性。

本节重点介绍开始使用新的 Visual Basic 语言时可能遇到的一些常见问题。

不再使用 Set 和 Let,而是使用简单的变量赋值。

<%
' Old ASP syntax.
Dim MyConn
Set MyConn = Server.CreateObject("ADODB.Connection")

' New ASP.NET syntax.
Dim MyConn
MyConn = Server.CreateObject("ADODB.Connection")
%>

不再使用非索引默认属性。非索引默认属性使通常引用对象的表达式能够转而引用对象的默认属性。支持默认属性的令人遗憾的结果是使程序更难读,因为表达式的含义取决于其上下文。在 Visual Basic .NET 中,非索引属性必须始终在代码中显式指定。

<%
' Old ASP syntax (retrieving recordset column value).
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open("TestDB")
Set RS = MyConn.Execute("Select * from Products")
Response.Write RS("Name")

' New ASP.NET syntax (retrieving recordset column value).
MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open("TestDB")
RS = MyConn.Execute("Select * from Products")
Response.Write RS("Name").Value
%>

仍然支持索引默认属性:

<%
Dim RS As RecordSet

' This is allowed (indexed).
RS.Fields(1).Value = RS.Fields(2).Value

' But these are not allowed (non-indexed).
RS(1) = RS(2)
RS(1).Value = RS(2).Value
%>

调用子例程现在需要使用括号。Visual Basic 现在支持与调用子例程和函数完全相同的语法。

' Note parentheses with Response.Write.
Sub DoSomething()
Response.Write("Hello World!")
End Sub

' Note parenthesws with DoSomething.
DoSomething()

新默认值是按值参数。 在 Visual Basic 6 中,如果用户没有在参数声明中显式指定 ByValByRef,调用约定默认为 ByRef。在新的 Visual Basic .NET 中,默认值为 ByVal。这对常规参数(其默认值通过显式指定 ByRef 可重写)和传递给 ParamArray 参数的参数(其默认值不能重写)都适用。但这已经改变,因为比这常见得多的做法是将参数仅用于将值传入过程,而不是改变传入的变量。将默认值更改为 ByVal 可提高性能并减少意外副作用的可能性。

仍然可以通过显式使用 ByRef 修饰符来使用按引用参数:

<script language="VB" runat=server>

Sub DoSomething(ByRef value)
value = 4343
End Sub

</script>

<%
Dim number = 55
DoSomething (number)
Response.Write ("Number: " & number)
%>

注意: Visual Basic 6 和 Visual Basic .NET 之间还存在其他许多差异。请参考语言文档以获取更多信息。

本节小结

1.ASP 中使用的 VBScript 与 ASP.NET 中使用的 Visual Basic .NET 语言之间的差别是到目前为止所有潜在移植问题中最广泛的。做了更改以简化语言并提高一致性、可读性、可维护性和可靠性。
2.Visual Basic .NET 中不再支持 Set 和 Let 赋值。改为使用标准的变量赋值。
3.Visual Basic .NET 中不支持非索引默认属性。但仍然支持索引默认属性。
4.在 Visual Basic .NET 中调用子例程时需要使用括号。
5.新默认值是按值参数。仍然可以通过显式使用 ByRef 修饰符来使用按引用参数。


感谢2001 Microsoft Corporation教材提供

  关于我们 联系方式 招聘启事 网站地图 合作伙伴  

Copyright 2001-2008 商务中国(www.bizcn.com) 短信名片:商务中国
总部地址:厦门软件园盛世大厦1-4楼(软件技术服务大楼裙楼) 邮编:361005 电话:0592-2577888
传真:
0592-2577188(汇款底单专用)  0592-2577111(其它各类传真)
上海分公司:上海市南京西路1081弄30号 邮编:200041
《中华人民共和国电信与信息服务业务》经营许可证 闽B2-20070003 网站备案号:闽B2-20040189