Formクラスの名前を表す(Name)プロパティがあることを知りたいだけです。このプロパティは、フォームがインスタンスであるクラスを一意に識別するために名前空間内で使用され、Visual Basicの場合はフォームの既定のインスタンスにアクセスするために使用されます。VB.Netではすべてのフォームのデフォルトインスタンスが存在しますが、C#ではデフォルトインスタンスが存在しないのはなぜですか?
ここで、このデフォルトインスタンスがどこから来たのか、なぜC#にはこれと同等のメソッドがありませんか?
// Only method
Form1 frm = new Form1();
frm.Show();
しかし、VB.Netで、我々はそれを行うには、両方の方法があります:
' First common method
Form1.Show()
' Second method
Dim frm As New Form1()
frm.Show()
マイ
はまた、C#でフォームを表示する例えば、私たちはこのような何かをこの最初の方法から質問が出ます。
Form1
とは何ですか、それはForm1
またはForm1
クラスのインスタンスですか?今、私が上で述べたように、フォーム名はVB.NetのDefaultインスタンスです。しかし、Form1
はDesigner
で定義されたクラスなので、インスタンス名とクラス名の名前はどのように同じになるのでしょうか?Form1
がクラスの場合、Show()という名前の(Static \ Shared)メソッドはありません。 この方法はどこから来たのですか?発生したILの違いは何ですか?
最後に、なぜC#にこれに相当するものがありませんか?
:あなた自身のために調べるために、.NETリフレクターをダウンロードして使用します。それは非常に便利で無料です。 –
私はC#でこの "機能"を望んでいません...あなたがそれを使用するためにクラスのインスタンスを作成する必要があるという事実を隠すことは単なるトリックです。それは本当に恐ろしいアイデアです!さらに、それは非常によく文書化されておらず、予期しない危険な副作用を持っています(例えば、各スレッドが独自の "デフォルトインスタンス"を持っています) –
@ThomasLevesque私はその機能を望んでいません。 :) –