我有一个数组,最初是VB6中的Variant数组。
VB6中的示例代码:
ListBoxDrawings.List(X1, Y1) = myArray(X2, Y2)
myArray(A, B) = ListBoxDrawings.List(I, C)
通过ArtinSoft's 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没有做Variants,我发现该数组应该被输入为2D String Array。看起来没有理由使用GetValue / SetValue,因为前者返回一个Object而后者需要一个。这意味着如果我想将它转换为变量,我必须将返回的对象强制转换为String(Cstr),这似乎是一个可能引入错误的无意义的额外步骤。此外,由于该方法有很多重载,代码可能不那么清楚。 使用SetValue / GetValue 有什么好处,或者我应该只考虑转换Variant的VBUC工件,并像原始代码一样直接访问数组?
没有Get / Set方法的VB.NET:
ListViewDrawings.Items(X1).SubItems(Y1).Text = myArray(X2, Y2)
myArray(A, B) = ListViewDrawings.Items(I).SubItems(C).Text
答案 0 :(得分:1)
放弃对象以支持String。转换工具几乎总是将Variants视为Object,因为在VB6中Variant是通用类型,就像在.NET Object中一样。