次の方法で共有


アップグレードに関する推奨事項 : 下限がゼロの配列の使用

更新 : 2007 年 11 月

Visual Basic 6.0 では、上限と下限に任意の整数を設定して配列を定義できます。また、ReDim を使用してバリアントを配列として再割り当てすることもできます。Visual Basic 2008 の配列では、他の言語との相互運用性を得るために、下限をゼロに設定する必要があります。また、ReDim は、事前に Dim キーワードで配列変数を宣言していないと使用できません。これによって配列の定義方法が制限されますが、Visual Basic 2008 と他の .NET Framework 言語との間で配列を渡すことができるようになります。この制限の例を次に示します。

'BAD: LBound must be 0
Dim a(1 To 10) As Integer
'BAD: Can't use ReDim without Dim
ReDim v(10)
'OK: Creates an array of 11 integers
Dim b(10) As Integer
'OK: Can ReDim previously Dimed variable
ReDim b(5) As Integer

上記の制限に伴い、Option Base ステートメントが言語から削除されています。

プロジェクトを Visual Basic 2008 にアップグレードすると、すべてのオプション ベース ステートメントがコードから削除されます。配列の下限がゼロである場合は変更されません。しかし、配列の下限がゼロでない場合は、次の例のように、配列の下限が削除され、コードに警告文が挿入されます。

Dim a(1 To 10) As Integer

このコードは次のように変更されます。

' UPGRADE_WARNING: Lower bound of an array was changed from 1 to 0.
Dim a(10) As Integer

多くの場合、アップグレードされたコードは、従来どおり機能します。ただし、下限を 1 に設定したロジックを使用するアプリケーションでは、若干の変更作業が必要になります。Dim、ReDim、および LBound の各ステートメントは、警告文で示されるため、変更点を簡単に確認できます。

このため、Visual Basic 6.0 のコードでは下限がゼロの配列を使用し、配列宣言に ReDim を使用することは避けてください。また、Option Base 1 の使用も避けてください。

参照

その他の技術情報

言語に関するアップグレード上の推奨事項