从 Visual Basic 6.0 到 Visual Basic.NET 的转换(3)

2016-01-29 12:08 2 1 收藏

从 Visual Basic 6.0 到 Visual Basic.NET 的转换(3),从 Visual Basic 6.0 到 Visual Basic.NET 的转换(3)

【 tulaoshi.com - vb 】

升级

向导

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

过程的 ParamArray 参数标记有升级警告。例如,以下代码:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Function MyFunction(ParamArray p() As Variant)

...

End Function

升级后将变为:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

UPGRADE_WARNING: ParamArray p was changed from ByRef to ByVal

Function MyFunction(ByVal ParamArray p() As Object)

...

End Function

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

声明中的 As Any 参数

Visual

Basic 6.0 本地 API 的参数可以声明为 As Any,这样对本地 API 的调用就可以传递任何数据类型。通过这一方法,可以调用参数支持两种或多种数据类型的 API。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Visual Basic.NET

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

重载的 Declare 语句可以定义为允许调用带有两种或多种数据类型的本地 API。例如,以下 Declare 语句:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Private Declare Function GetPrivateProfileString _

Lib "kernel32" Alias "GetPrivateProfileStringA" ( _

ByVal lpApplicationName As String, _

ByVal lpKeyName As Any, _

ByVal lpDefault As String, _

ByVal lpReturnedString As String, _

ByVal nSize As Long, _

ByVal lpFileName As String) As Long

可以由两个 Declare 版本代替,一个接受 Long,一个接受字符串。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Overloads Private Declare Function GetPrivateProfileStringKey _

Lib "kernel32" Alias "GetPrivateProfileStringA" ( _

ByVal lpApplicationName As String, _

ByVal lpKeyName As String, _

ByVal lpDefault As String, _

ByVal lpReturnedString As String, _

ByVal nSize As Long, _

ByVal lpFileName As String) As Long

Overloads Private Declare Function GetPrivateProfileStringNullKey _

Lib "kernel32" Alias"GetPrivateProfileStringA" ( _

ByVal lpApplicationName As String, _

ByVal lpKeyName As Long, _

ByVal lpDefault As String, _

ByVal lpReturnedString As String, _

ByVal nSize As Long, _

ByVal lpFileName As String) As Long

这提高了类型的安全性,并减少了导致程序失败的小毛病。这一情况的存在是因为编译器不允许通过没有显式定义的数据类型来调用 API。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

升级

向导

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

使用 As Any 参数的 Declare 语句标记有升级警告。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Implements

Visual

Basic 6.0 Implements 语句指定在其出现的类模块中实现的接口或类。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Visual Basic.NET

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Visual Basic.NET 中的 Implements 与 Visual Basic 6.0 中的 Implements 有两个本质区别:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

在 Implements 语句中不能指定类。

每一种实现方法均要求在方法声明语句的结束处使用 Implements 子句。该子句指定其实现的接口方法。

由于要求每一种实现接口方法的方法均使用 Implements 子句,所以提高了代码的可读性;在阅读使用方法来实现接口方法的的代码时,这一优点显而易见。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

升级

向导

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

如果类 a 实现类 b,则将为类 b 声明接口,且类 a 将变为实现类 b 的接口:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Interface _b

Function MyFunction() As String

End Interface

Class a

Implements _b

Function b_MyFunction() As String Implements _b.MyFunction

End Function

End Class

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

属性

Visual

Basic 6.0 在 Visual Basic 6.0 中,特定属性的 Get、Let 和 Set 属性函数可以通过不同级别的访问选项声明。例如,Property Get 函数可以声明为 Public 而 Property Let 可以声明为 Friend。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Visual Basic.NET

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

属性的 Get 和 Set 函数必须具有相同级别的访问选项。这样就便于 Visual Basic.NET 与其他 .NET 语言协同操作。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

升级

向导

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

如果访问选项的级别不同,则新属性为 Public。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

默认属性

Visual

Basic 6.0 任何成员均可标记为类的默认值。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

Visual Basic.NET

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

只有接受参数的属性可以标记为默认值。对于将成为集合中的索引的带参数属性,这一情况很常见。

来源:https://www.tulaoshi.com/n/20160129/1484771.html

延伸阅读
开始编码之前 在 Visual Basic 中创建应用程序的最重要的(又往往为人忽视的)部分是设计阶段。需要为应用程序设计一个用户界面,这是显然的;但需要设计代码的结构就不那么显然了。构造应用程序的方法不同,可造成应用程序的性能及代码的可维护性、可使用性不同。 Visual Basic 应用程序的代码是用分层方式组织的。典型应用程...
为了理解应用程序开发过程,先要理解 Visual Basic 赖以创建的一些关键概念。因为 Visual Basic 是 Windows 开发语言,所以有必要与 Windows 环境保持一定的相似性。如果不熟悉 Windows 编程,就需要明白在 Windows环境下编程和在其它环境下编程的一些根本性的差别。 Windows 的工作方式:窗口、事件和消息 全面地讨论 Windows ...
标签: vb
这个程序实现了以下的功能:将BMP、JPG、jpeg、GIF、.png、.tiff文件转化成ico文件,可以对转化后的文件进行编辑;创建并编辑一个新的ico文件;对已有的ico文件进行编辑。所有被编辑的文件都保存为ico文件,可以在任何可使用ico文件的地方使用它们。 我先说明一下什么是GDI+。GDI+ 是GDI(Windows 早期版本提供的图形设备接口)的...
运行安装程序时将会为 Visual Basic 创建目录,从而可选择要安装的 VisualBasic 部件。 除了 \Os 目录下的操作系统文件,CD 上的其它文件是没有被压缩的,所以可从盘上直接使用。例如,在 \Tools 目录下有许多的工具和部件,可以直接从 CD-ROM 运行或安装。 要从 CD 盘上安装,请按照以下步骤执行: 1. 在 CD-ROM 驱动器中...
使用 CommandButton 控件 命令按钮控件被用来启动、中断或结束一个进程。单击它时将调用已写入Click 事件过程中的命令。 大多数 Visual Basic 应用程序中都有命令按钮,用户可以单击按钮执行操作。单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮。 详细信息 关于 CommandB...