如何在VB.NET中声明“as any”,或者什么是等效的?
答案 0 :(得分:3)
最接近的是:
Dim var as Object
它与VB6的Any(在Variant中存储值)不完全相同,但您可以将任何类型的变量存储为Object,尽管是盒装的。
答案 1 :(得分:3)
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”关键字。您需要明确指定类型。