2008-09-16 126 views

回答

0

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

3

你可以得到的最接近的是:

Dim var as Object

这不完全一样VB6的是任何(存储在变量值),但你可以存储任何类型的变量作为对象,虽然盒装。

3

VB.NET不支持任何关键字,VB.NET是强类型语言,但是,您可以(与.NET 3.5)使用隐式类型在VB

暗淡弗雷德=“Hello World”的意志隐式输入fred作为字符串变量。如果你想简单地持有一个你不知道设计时的类型的值,那么你可以简单地将你的变量声明为对象(所有对象的母亲)。注意,这通常是代码审阅者的红旗,所以确保你有一个很好的理由:-)

+0

如果您启用了Option Strict,则需要在声明变量时指定类型。 – Kogitsune 2012-05-30 16:03:49

1

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

您也可以尝试编组:

 
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object 
3

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

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