MENU

【VB.NET】Erase ステートメント

Visual Basic .NET(VB.NET)のプログラミングにおいて、配列やオブジェクト変数の内容をクリアしたい場面がよくあります。そんなときに便利なのがEraseステートメントです。この記事では、VB.NETのEraseステートメントの使い方と注意点について、初心者の方にも分かりやすく解説します。

目次

Eraseステートメントとは

Eraseステートメントは、配列の全要素を初期化したり、オブジェクト変数への参照を解除したりするために使用します。配列の場合、各要素がデフォルト値(数値型なら0、文字列型なら空文字列、オブジェクト型ならNothing)にリセットされます。

Eraseステートメントの基本的な使い方

1. 一次元配列での使用例

Module EraseExample
    Sub Main()
        ' 整数型配列の宣言と初期化
        Dim numbers() As Integer = {1, 2, 3, 4, 5}
        
        Console.WriteLine("Erase前の配列:")
        PrintArray(numbers)

        ' Eraseステートメントの使用
        Erase numbers

        Console.WriteLine("Erase後の配列:")
        PrintArray(numbers)
    End Sub

    Sub PrintArray(arr() As Integer)
        For Each num In arr
            Console.Write(num & " ")
        Next
        Console.WriteLine()
    End Sub
End Module

この例では、numbers配列の全要素が0にリセットされます。

2. 多次元配列での使用例

Module MultiDimensionalEraseExample
    Sub Main()
        ' 2次元配列の宣言と初期化
        Dim matrix(,) As Integer = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}

        Console.WriteLine("Erase前の2次元配列:")
        PrintMatrix(matrix)

        ' Eraseステートメントの使用
        Erase matrix

        Console.WriteLine("Erase後の2次元配列:")
        PrintMatrix(matrix)
    End Sub

    Sub PrintMatrix(mat(,) As Integer)
        For i As Integer = 0 To mat.GetUpperBound(0)
            For j As Integer = 0 To mat.GetUpperBound(1)
                Console.Write(mat(i, j) & " ")
            Next
            Console.WriteLine()
        Next
    End Sub
End Module

多次元配列でも同様に、全要素が初期化されます。

3. オブジェクト変数での使用例

Module ObjectEraseExample
    Class Person
        Public Name As String
    End Class

    Sub Main()
        Dim person As New Person
        person.Name = "山田太郎"

        Console.WriteLine("Erase前: " & If(person Is Nothing, "Nothing", person.Name))

        ' Eraseステートメントの使用
        Erase person

        Console.WriteLine("Erase後: " & If(person Is Nothing, "Nothing", person.Name))
    End Sub
End Module

オブジェクト変数の場合、Eraseを使用するとオブジェクトへの参照が解除され、変数はNothingになります。

Eraseステートメントの注意点

  1. Eraseは配列の要素をクリアしますが、配列自体は削除しません。配列のサイズは変わりません。
  2. 動的配列(ReDimで宣言された配列)にEraseを使用すると、配列は未定義状態になります。再利用する前に再宣言が必要です。
  3. オブジェクト変数に対してEraseを使用すると、オブジェクトへの参照が解除されますが、オブジェクト自体は削除されません。ガベージコレクションの対象になります。

Eraseステートメントは、VB.NETプログラミングにおいて配列やオブジェクト変数をクリアするための便利なツールです。適切に使用することで、メモリ管理や変数の初期化を効率的に行うことができます。ただし、その動作を正しく理解し、適切な場面で使用することが重要です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次