Visual Basic 6.0到VB.NET声明

时间:2008-09-16 07:52:36

标签: vb.net vb6 declaration

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

5 个答案:

答案 0 :(得分:3)

最接近的是:

Dim var as Object

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

答案 1 :(得分:3)

<> VB.NET不支持任何关键字,VB.NET是一种强类型语言,但是你可以(使用.NET 3.5)在VB中使用隐式类型

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:1)

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

你也可以尝试编组:

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

答案 4 :(得分:0)

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