もともと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