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ステートメントの注意点
Erase
は配列の要素をクリアしますが、配列自体は削除しません。配列のサイズは変わりません。- 動的配列(
ReDim
で宣言された配列)にErase
を使用すると、配列は未定義状態になります。再利用する前に再宣言が必要です。 - オブジェクト変数に対して
Erase
を使用すると、オブジェクトへの参照が解除されますが、オブジェクト自体は削除されません。ガベージコレクションの対象になります。
Erase
ステートメントは、VB.NETプログラミングにおいて配列やオブジェクト変数をクリアするための便利なツールです。適切に使用することで、メモリ管理や変数の初期化を効率的に行うことができます。ただし、その動作を正しく理解し、適切な場面で使用することが重要です。
コメント