Visual Basic 6.0 到 VB.NET 声明

问题描述 投票:0回答:5

如何在 VB.NET 中声明“as any”,或者什么是等效的?

vb.net vb6 declaration vb6-migration
5个回答
4
投票

你能得到的最接近的是:

Dim var as Object

它与 VB6 的 Any(将值存储在 Variant 中)并不完全相同,但您可以将任何类型的变量存储为 Object,尽管是盒装的。


3
投票

VB.NET 不支持 as any 关键字,VB.NET 是一种强类型语言,但是您可以(使用 .NET 3.5)在 VB 中使用隐式类型

Dim fred = "Hello World" 将 fred 隐式键入为字符串变量。如果你想简单地保存一个你在设计时不知道类型的值,那么你可以简单地将你的变量声明为对象(所有对象的母亲)注意,这通常是代码审查者的危险信号,所以确保你有充分的理由准备好了:-)


3
投票

As Any
必须引用 Windows API 声明,因为它不能用于变量声明。您可以使用重载:只需为您希望传递的每种不同数据类型重复声明即可。 VB.NET 会挑选出与您在调用中传递的参数相匹配的参数。

这比

As Any
在 VB6 中更好,因为编译器仍然可以进行类型检查。


1
投票

我想你在转换 WinAPI 声明时遇到了问题。有时,如果您只是将变量声明为字符串或整数,您就可以逃脱,因为这是返回值的真实类型。

您也可以尝试编组:

 ByRef buff 作为对象

0
投票

VB.NET 不支持“As Any”关键字。您需要明确指定类型。

© www.soinside.com 2019 - 2024. All rights reserved.