vb.netでオブジェクトのインスタンスを宣言するベストプラクティスは何ですか?
Person1 を Person = new Person() として薄暗くする
また
Person1 を new Person() として暗くする
vb.netでオブジェクトのインスタンスを宣言するベストプラクティスは何ですか?
Person1 を Person = new Person() として薄暗くする
また
Person1 を new Person() として暗くする
両者に違いはありません。C# には構文に相当するものがないAs New
ため、C# プログラマーが無知から、または単に慣れから最初のオプションを選択することがよくあります。
ただし、変数をインターフェイスまたは基本クラスとして型指定する場合など、型を指定する必要がある場合があります。
Dim person1 As IPerson = New Person()
または
Dim person1 As PersonBase = New Student()
As New
また、この構文は VB6 にも存在していましたが、意味が少し異なっていたことにも言及する価値があります。.NET ではAs New
、変数の開始値を設定します。VB6では、変数を「自動インスタンス化」しました。VB6 では、変数を宣言すると、As New
変数が と等しい場合にその変数を使用するたびに、新しいオブジェクトが自動的にインスタンス化されますNothing
。例えば:
'This is VB6, not VB.NET
Dim person1 As New Person
MsgBox person1.Name ' person1 is set to a new Person object because it is currently Nothing
Set person1 = Nothing
MsgBox person1.Name ' person1 is set to a second new Person object because it is currently Nothing
VB.NET では、それは行われません。VB.NET では、変数を に設定すると、別の値にNothing
設定するまでその状態が維持されます。たとえば、次のようになります。
'This is VB.NET
Dim person1 As New Person() ' person1 is immediately set to a new Person object
MessageBox.Show(person1.Name)
person1 = Nothing
MessageBox.Show(person1.Name) ' Throws an exception because person1 is Nothing