当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 从 Visual Basic 6.0 到 Visual Basic.NET 的转换(2)

ASP.NET
使用NUnit进行单元测试
[FxCop.设计规则]1. 抽象类不应该拥有构造函数
遍历XML文档返回二维数组(ASP)(更新版)
c#中的interface abstract与virtual
[VB.NET] Single & Double
asp.net验证码生成类(参考)
JAVA开发者应该去的20个英文网站 [摘]
C#中关于GDI+输出的问题
XML 命名空间提供了一种避免元素命名冲突的方法。
VS.NET 2005 Beta 2初体验(3)—操作SQL Mobile数据库
VS.NET 2005 Beta 2初体验(1)-用C#开发Managed代码
VS.NET 2005 Beta 2初体验(2)-用C++开发Native代码
VS.NET 2005 Beta2初体验(4)-Notification控件
XmlHttp异步获取网站数据的例子
利用C#编写一个简单的抓网页应用程序
C#中结构与类的区别
在.NET中实现彩色光标,动画光标和自定义光标
C#2.0新特性探究之模拟泛型和内置算法
C#2.0 新特性探究之委托与匿名委托
获取本机的本地上网IP地址

ASP.NET 中的 从 Visual Basic 6.0 到 Visual Basic.NET 的转换(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 167 ::
收藏到网摘: n/a

升级

向导

将 Currency 数据类型转换为 Decimal,因此以下代码:

Dim x As Currency

升级后将变为:

Dim x As Decimal

Date

Visual

Basic 6.0 Date 变量在内部以 Double 格式存储,能够作为 Double 类型的变量操作。

Date 变量存储为 IEEE 64 位浮点数,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日的日期和从 0:00:00 到 23:59:59 的时间。任何可识别的文字日期都可以指定为 Date 变量。

当其他数字类型转换为 Date 时,小数点左边的值表示日期信息,而小数点右边的值表示时间信息。午夜为 0,正午为 0.5。整个数值为负表示 1899 年 12 月 30 日之前的日期。

Visual Basic.NET

Date 在内部存储为 64 位整数,因此无法直接作为 Double 进行操作。.NET 框架提供了 ToOADate 和 FromOADate 函数以进行 Double 和 Date 之间的转换。将日期表示为整数形式可以简化并加速对日期的操作。

升级

向导

升级工具并非能够检测到所有使用变量将 Date 存储为 Double 的情况,但它一般会在将 Double 指定为 Date 的位置插入适当的 ToOADate 或 FromOADate 方法。例如,以下代码:

Dim dbl As Double Dim dat As Date Dbl = dat

升级后将变为:

Dim dbl As Double Dim dat As Date Dbl = dat.ToOADate

定长字符串

Visual

Basic 6.0 除类模块的 Public 变量之外,其他变量均可以声明为定长字符串。

Visual Basic.NET

CLR 第一版不支持定长字符串。在后续版本中将添加这一支持功能。

升级

向导

在大多数情况下不会出现问题。假设为定长字符串表现方式,则以下代码:

Dim MyFixedLengthString As String * 100

升级后将变为:

Dim MyFixedLengthString As New VB6.FixedLengthString(100)

有关该主题的全面说明,请参阅白皮书《准备将 Visual Basic 6.0 应用程序升级到 Visual Basic.NET》(英文)。

Type

Visual

Basic 6.0

Type 语句用于定义由用户定义的数据类型。

Visual Basic.NET

Type 和 User-Defined Type 这两个名称会引起混淆,因为类、枚举和接口也是可以由用户定义的类型。Type 和 User-Defined Type 是从 QuickBasic 遗留下来的,在 QuickBasic 中用户可以定义的类型只有结构和记录。CLR 使用 Type 这一名称广义地包含所有数据类型。

因此,在 Visual Basic.NET 中 Type 语句将变为 Structure。

升级

向导

将 Type 语句变为 Structure,因此以下代码:

Type MyType MyVariable As Integer End Type

升级后将变为:

Structure MyType Dim MyVariable As Short End Structure

用户定义类型存储

Visual

Basic 6.0 用户定义的数据类型可以包含某种数据类型、数组或先前定义的用户定义类型的一个或多个元素。在 Visual Basic 6.0 中,它们存储在连续的内存块中。

Visual Basic.NET

格式是最有效的。它可能位于一段连续的内存,也可能不。结构可以被标记为封送处理属性,以确保能够作为连续内存块传递到 COM 组件。

升级

向导

在所有需要添加封送处理属性的位置,API 均标记有 TODO 注释。(属性不是自动添加的,只有将结构传递到 API 时才需要它们。)

True

Visual

Basic 6.0 True 的值为 -1。

Visual Basic.NET

True 的值为 1。

鉴于语言的协同操作,需要一种适用于所有语言的一致表示法。

升级

向导

如果将布尔值强制转换为非布尔值,代码将标记有升级警告。例如,以下代码:

Dim MyBoolean As BooleanDim MyInteger As Integer MyInteger = MyBoolean

升级后将变为:

Dim MyBoolean As BooleanDim MyInteger As Short ' UPGRADE_WARNING: Boolean MyBoolean is being converted into a numeric MyInteger = MyBoolean

Empty

Visual

Basic 6.0 变量均初始化为 Empty,当用于数值表达式时,变量将自动转换为零,当用于字符串表达式时,则自动转换为空字符串。

Visual Basic.NET

对象变量均初始化为 Nothing,当用于数值表达式时,变量将自动转换为零,当