初心者プログラマーとして、変数宣言の概念とVisual Basicでの値の割り当てを理解しようとしています。私は、チュートリアルのレッスンから、このコードを検討しています:変数宣言と代入
Imports System.Text
Module Module1
Sub Main()
Dim myString As StringBuilder = New StringBuilder
For i = 1 To 10
myString.Append("-")
myString.Append(i)
Next
Console.WriteLine(myString)
Console.ReadLine()
End Sub
End Module
私の混乱はラインによるものです:
Dim myString As StringBuilder = New StringBuilder
何が起こっていると思いますが、私は、新しいオブジェクトインスタンスとして変数のmyStringを宣言することですStringBuilderクラス(私はここで単語 'オブジェクト'と 'クラス'を正しく使用したいと思っています)。しかし、その後、なぜmyStringは新しいStringBuilderに割り当てられる必要がありますか?私はDimを使ってStringBuilderにしていませんでしたか?この例では、New演算子の役割は何ですか?
わかりやすい説明をいただければ幸いです。すでに割り当てを作ったので、だから、新しいStringBuilderのを割り当てるである必要はありません
Dim myString As StringBuilder
myString = new StringBuilder()
:ここ
_DimのStringBuilderを使うまでは存在しないのStringBuilderインスタンスへの参照を宣言していないこと、あなたのmyString変数に代入されます。この値(...を参照)であることNewを呼び出します。 Newはメモリのどこかにインスタンスを作成し、そのインスタンスが存在するこのメモリ領域に_reference_を返します。 – Steve
PS投稿する前にこのディスカッションを見つけましたが、残念ながら私の質問には特に言及しませんでした。 http://stackoverflow.com/questions/467843/vb-net-dim-vs-new –
その行は** 2つの**ものを含みます: 'Dim'は、コードが変数myStringを使用することを宣言します。タイプStringBuilderの。 'New'は、使用可能な' StringBuilder'のインスタンスを作成します。 – Plutonix