当前位置: 网学 > 编程文档 > VB > 正文

从Visual Basic 6.0 到 Visual Basic.NET 的转换

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
/-0.0000000000000000000000000001。

Visual Basic.NET
Currency 数据类型的精度不够,无法避免四舍五入的误差,因此创建了 Decimal 这种数据类型。

升级向导

将 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
变量均
  • 下一篇资讯: 微软.Net程序设计FAQ
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号