Visual Basic 6.0到VB.NET声明

Visual Basic 6.0到VB.NET声明,vb.net,vb6,declaration,Vb.net,Vb6,Declaration,如何在VB.NET中声明“as any”或什么是等效的?不支持“as any”关键字。您需要明确指定类型。最接近的是: Dim var作为对象 它与VB6的Any(将值存储在变量中)不完全相同,但您可以将任何类型的变量存储为对象,尽管是装箱的。VB.NET不支持as Any关键字,VB.NET是一种强类型语言,但是您可以(使用.NET 3.5)在VB中使用隐式类型 Dim fred=“Hello World”将隐式键入fred作为字符串变量。如果您想简单地保存一个在设计时不知道其类型的值,那么您

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

不支持“as any”关键字。您需要明确指定类型。

最接近的是:

Dim var作为对象


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

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


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

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

您还可以尝试封送:

<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object ByRef buff作为对象
As Any必须引用Windows API声明,因为它不能用于变量声明。您可以使用重载:只需为希望传递的每个不同数据类型重复声明。VB.NET选择与调用中传递的参数匹配的参数


这比VB6中的任何类型都好,因为编译器仍然可以执行类型检查。

如果启用了选项Strict,则在声明变量时需要指定类型。