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

老天72

老天72

2016-01-29 12:08

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

向导

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

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

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

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

Function MyFunction(ParamArray p() As Variant)

...

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

End Function

升级后将变为:

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

UPGRADE_WARNING: ParamArray p was changed from ByRef to ByVal

Function MyFunction(ByVal ParamArray p() As Object)

...

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

End Function

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

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

声明中的 As Any 参数

Visual

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

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

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

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

Visual Basic.NET

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

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

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

(本文来源于图老师网站,更多请访问http://m.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,一个接受字符串。

(本文来源于图老师网站,更多请访问http://m.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。

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

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

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

升级

向导

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

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

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

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

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

Implements

Visual

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

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

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

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

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

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

Visual Basic.NET

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

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

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

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

在 Implements 语句中不能指定类。

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

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

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

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

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

升级

向导

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

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

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

(本文来源于图老师网站,更多请访问http://m.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

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

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

属性

Visual

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

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

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

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

Visual Basic.NET

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

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

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

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

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

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

升级

向导

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

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

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

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

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

默认属性

Visual

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

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

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

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

Visual Basic.NET

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

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

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

展开更多 77%)
分享
qqQQ
qzoneQQ空间
weibo微博

猜你喜欢

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

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

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

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

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

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

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

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

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

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

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

Visual Basic.NET编程的设计思考

vb
Visual Basic.NET编程的设计思考

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

定义标题的最好方法

定义标题的最好方法

用VB设计有安全认证服务的Email

用VB设计有安全认证服务的Email
下拉加载更多内容 ↓