投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/12/28 00:03:50
インタンスについて学ぶ際には、「クラス(参照型)」と「構造体(値型)」の違いについても、
あわせて学んでおきましょう。


> コンパイル時におのおのに対して相当のコード、領域を割り当てること?プリプロセッサ?に対した1種の命令?、、、、

VB におけるプリプロセッサの例としては、『#If ディレクティブ』等が挙げられますが、
クラスやインスタンスの話とは無関係ですね。
クラスやインスタンスの説明にはなっていないと思います。


> この辺りの解釈は例えばフォームコントロールであればフォーム上に張り付けると裏側でNewされている。

これについてはその通りですね。


たとえば Form1 に Button を貼り付けると、Form1.designer.vb というファイルが作られて、
その中に下記のようなコードが自動生成されることになります。

Private Sub InitializeComponent()
    Me.Button1 = New System.Windows.Forms.Button()    '★ Button のインタンスを生成している 
    
    'Button1 
    
    Me.Button1.Location = New System.Drawing.Point(10, 10)
    Me.Button1.Name = "Button1"
    Me.Button1.Size = New System.Drawing.Size(100, 40)
    Me.Button1.Text = "Button1"
    Me.Button1.UseVisualStyleBackColor = True
    
    'Form1 
    
    Me.Controls.Add(Me.PictureBox1)
    Me.Name = "Form1"
    Me.Text = "Form1"
End Sub
Friend WithEvents Button1 As Button



ツールボックスにある Button クラスは設計図。

設計図から New によって生成され、その実体が
フィールド変数 Button1 にセットされたのが、上記の★の行のコード。

Button という設計図は同じでも、そこから作られた Button1 と Button2 は別の存在です。
それぞれ別のインスタンス。