Visual Basic 6.0到VB.NET声明

时间:2020-03-05 18:55:21  来源:igfitidea点击:

如何在VB.NET中声明"任意",或者等效项是什么?

解决方案

回答

VB.NET不支持"任意"关键字。我们需要明确指定类型。

回答

我们可以获得的最接近的是:

将Dim var作为对象`

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

回答

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

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

回答

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

我们也可以尝试封送处理:

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

回答

As Any必须引用Windows API声明,因为它不能在变量声明中使用。我们可以使用重载:只需对要传递的每种不同数据类型重复声明。 VB.NET会选择与我们在呼叫中传递的参数匹配的参数。

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