■No89394 (もん さん) に返信
> はじめまして。
> VBとかクラスとかよくわかっていないので教えてください。
>
> Dim x As MyClass (1)
> x = New MyClass() (2)
>
> よく、こんなコードを見かけます。
>
> (1)の段階でインスタンスは生成されていると思います。
> どうして(2)のコードが必要なのでしょうか?
> 重複していて(2)は不要なのではないかと思っています。
>
> よろしくお願いします。
「言語」という位なので、掲示板で聞いて覚えられるようなものではありません。
2〜3冊の入門用図書を読むことを勧めます。
その人の理解度や知識量によって「良い本」というものは変わります。
実際に本屋に行って立ち読みし、選びましょう。
VB.NET の文法には明るくないのですが、こんなクラスを作ります。
Class MyClass
Public Sub New()
System.Diagnostic.Debug.WriteLine("New")
End Sub
End Class
コンストラクタ、インスタンスを生成したときにデバッグ出力をするだけのクラスです。
このクラスを作成して、
Dim x As MyClass
System.Diagnostic.Debug.WriteLine("Defined")
x = New MyClass()
を実行します。
さて、出力は、
New
Defined
New
となるのか。←あなたの疑問通り、(1)でインスタンスが生成されている。
Defined
New
となるのか。←Dim では宣言されただけでインスタンスは生成されていない。
確かめてください。
なお、
Dim x As New MyClass
もやってみてください。
|