我该如何在VB.NET中声明"as any",或者等价的语法是什么?
我该如何在VB.NET中声明"as any",或者等价的语法是什么?
Dim var as Object
As Any
必须是指向 Windows API 声明,因为它不能用于变量声明。您可以使用重载:只需为每个不同的数据类型重复声明,您希望传递哪种数据类型就使用哪种声明。VB.NET 会挑选与您在调用中传递的参数匹配的那个声明。
这比 VB6 中的 As Any
更好,因为编译器仍然可以进行类型检查。
VB.NET不支持“as any”关键字,VB.NET是一种强类型语言,但您可以在VB中使用隐式类型(与.NET 3.5一起)
Dim fred =“Hello World”将隐式地将fred类型定义为字符串变量。如果您想要仅保留一个值,而无法在设计时知道其类型,则可以将变量声明为对象(所有对象的母亲)。请注意,这通常会引起代码审阅者的警告,因此请确保您有充分的理由 :-)
我猜你在转换WinAPI声明时遇到了问题。有时,如果你将变量声明为字符串或整数,因为这是返回值的实际类型,你就可以轻松解决问题。
你也可以尝试使用“马歇尔”技术:
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object