我如何在VB.NET中声明“as any”,或者等效的是什么?
Visual Basic 6.0到VB.NET的声明
原标题:
问题回答
你能得到的最接近的是:
将变量Dim为对象
它与VB6 s as Any(在Variant中存储值)并不完全相同,但您可以将任何类型的变量存储为Object,尽管是盒装的。
VB.NET不支持as any关键字,VB.NET是一种强类型语言,但是(使用.NET 3.5)可以在VB中使用隐式键入
Dim fred=“Hello World”将隐式键入fred作为字符串变量。如果你想简单地保存一个在设计时不知道类型的值,那么你可以简单地将变量声明为对象(所有对象的母亲)注意,这通常是代码评审员的一个危险信号,所以请确保你有充分的理由:-)
As Any
必须引用Windows API声明,因为它不能在变量声明中使用。您可以使用重载:只需为要传递的每个不同数据类型重复声明。VB.NET会选择与您在调用中传递的参数匹配的数据类型。
这比VB6中的As Any
要好,因为编译器仍然可以进行类型检查。
我想您在转换WinAPI声明时有问题。有时,如果您只将变量声明为字符串或整数,您就可以逃脱惩罚,因为这是返回值的真实类型。
您也可以尝试封送处理:
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object
VB.NET不支持”As Any“关键字。您需要显式指定类型。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding