我有一个数组,它最初是 VB6 中的 Variant 数组。
VB6 中的示例代码:
ListBoxDrawings.List(X1, Y1) = myArray(X2, Y2)
myArray(A, B) = ListBoxDrawings.List(I, C)
通过ArtinSoft 的 VBUC运行它后,它的值使用GetValue
&处理SetValue
。
VB.NET 中的示例代码:(忽略到 ListView 的转换)
ListViewDrawings.Items(X1).SubItems(Y1).Text = CStr(myArray.GetValue(X2, Y2))
myArray.SetValue(ListViewDrawings.Items(I).SubItems(C).Text, A, B)
由于 VB.NET 不做变体,我发现该数组应该被键入为 2D 字符串数组。似乎没有理由使用 GetValue/SetValue,因为前者返回一个对象,而后者需要一个。这意味着如果我想将返回的对象分配给一个变量,我必须将它转换为字符串(Cstr),这似乎是一个可能引入错误的毫无意义的额外步骤。此外,由于该方法有很多重载,因此代码可能不那么清晰。 使用 SetValue / GetValue 有什么好处,还是我应该只考虑 VBUC 转换 Variant 的工件,并像原始代码一样直接访问数组?
没有 Get/Set 方法的 VB.NET:
ListViewDrawings.Items(X1).SubItems(Y1).Text = myArray(X2, Y2)
myArray(A, B) = ListViewDrawings.Items(I).SubItems(C).Text