| ■No100467 (ピップ さん) に返信 > Dim arr() As String > で宣言した配列に対し、 > arr(0) = "A"
変数 arr の初期値は Nothing なので、 各要素に代入する前に ReDim arr(2) あるいは arr = New String(2) {} などと書いておかねば、NullReferenceException になりますよ。
> この時点で「要素」はクリアされたという認識ですが、 >「要素数」は「3」のままの認識で合ってますでしょうか あっています。
> Array.Clear(arr, 0, arr.Length) この処理の実行結果は For n = 0 To arr.Length - 1 arr(n) = Nothing Next に相当します。 Array.Clear の方が、ループよりも効率が良いというだけで。
> さらにそこから要素数をクリアする方法が分からない状況です。 Array.Clear を事前に呼ぶ必要はないですよ。
配列そのものを破棄するなら「Erase arr」または「arr = Nothing」とするだけですし、 そもそもメソッド内で宣言されたローカル変数であれば、殆どの場合、 意図的に破棄する必要もありません。 |