直到今天,我认为以下两个符号是相同的(编辑:Dim被替换为Property)
Property arrayVariable() As Object
Property arrayVariable As Object()
Run Code Online (Sandbox Code Playgroud)
今天我发现前者抛出错误Option Strict On disallows late binding.而后者在表达中编译好dictionary1.TryGetValue(CStr(arrayVariable(0)), result).
请问他们之间有什么区别?
如果它也允许指定数组维度,我将始终使用第二种表示法.它没有,所以我坚持使用第一种形式(不太干净,因为类型规范的一部分 - 括号 - 之前As),以便在声明之间保持一致.现在我看到即便是第一个也不普遍......
它实际上看起来像是Visual Basic的一个弱点,一种事物存在两种形式,它们的使用并不简单,但有这样的捕获.
完整源代码重现问题:
Public Class Class1
Dim _A1() As Object
Dim _A2() As Object
ReadOnly Property A1() As Object ' 1st form of declaration
Get
Return _A1
End Get
End Property
ReadOnly Property A2 As Object() ' 2nd form of declaration
Get
Return _A2
End Get
End Property …Run Code Online (Sandbox Code Playgroud)