一个让我困惑的问题:
在VB.NET中,当声明一个接受数组作为参数的Function
(或Sub
)时,可以写一个:
Sub func(par as integer())
或:
Sub func(par() as integer)
。
那么,par as integer()
是否与par() as integer
完全相同,即使我向他们添加了各种装饰(例如Byval
)?
我用Google搜索并在MSDN上找到了this page,它似乎使用了第二个。
我还尝试编写一些测试函数,这也表明没有区别。
但是有一个确认或反例会很高兴。谢谢!
更进一步,par as integer()()
,par() as integer()
,par()() as integer
是否也相同?
答案 0 :(得分:4)
VB.NET编译器不关心你选择哪个版本,两者都同样有效。只需使其保持一致,因此它始终与代码的读者看起来相同。并且考虑到你喜欢它和VS一样,所以完全一致。与对象浏览器和智能感知一样,他们喜欢par as Integer()
风格。
但请注意当您想直接声明数组大小时会遇到的问题:
Dim a(3) As Integer '' Okay, array with 4 elements
Dim a As Integer(3) '' Not happy, BC30638
Dim b As SomeType(3) '' Not happy, constructor call requires New
Basic语法中的括号做了太多工作。