VB.NETのインスタンスとC#ウィンドウの根本的な違いは何ですか?
vb.net、各ウィンドウにはデフォルトのインスタンスがありますが、C#にはそうではありません。この違いは、異なる言語のさまざまな設計概念に由来しています。 vb.netの属性は、ウィンドウクラスのインスタンスを直接識別しますが、C#にはこのデフォルトインスタンスの概念がありません。
vb.netのデフォルトインスタンス: (Name)
属性により、ウィンドウのデフォルトインスタンスに直接アクセスできます。 c#:
にはデフォルトの例はありません
(Name)
c#はオブジェクト指向の原理を強調し、プログラマーにインスタンスを明示的に作成する必要があります。 VB.NETとは異なり、C#はグローバル名空間に名前を付ける属性とメソッドを許可していません。したがって、C#は、定義型のデフォルトインスタンスを定義するメカニズムを提供しません。
コードの例:
c#では、ウィンドウのインスタンスと表示が明示的です:
vb.netでは、暗黙的にインスタンス化されたり、明示的にインスタンス化されたりできます。 生成されたilコード:
2つのコードによって生成されたILコードは異なります。 vb.netのデフォルトインスタンスメソッドで、
命令を使用して<code class="language-csharp">// 唯一方法 Form1 frm = new Form1(); frm.Show();</code>
メソッドを呼び出します。 C#では、
>>インスタンスの<code class="language-vb.net">' 常用方法一 Form1.Show() ' 常用方法二 Dim frm As New Form1() frm.Show()</code>
c#デフォルトインスタンスをシミュレートできますか?
C#ウィンドウクラスで静的属性を使用してデフォルトのインスタンスをシミュレートすることにより、デフォルトのインスタンスをシミュレートできます。ただし、この方法は十分にエレガントではなく、追加のモデルコードが必要です。
newobj
デザインの違いの理由:Form1
Show()
newobj
VB.NETとC#の設計上の違いは、それぞれのターゲットユーザーを反映しています。 VB.NETのデフォルトインスタンス特性は、VB6から移動するプログラマーを支援するように設計されています。 C#は、オブジェクト指向の原則に焦点を当て、インスタンス化されたクラスを奨励しているため、開発者がコードをよりよく制御できるようにします。 Form1
以上がvb.netには、c#がそうではないのにデフォルトのフォームインスタンスがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。