ホームページ > バックエンド開発 > C++ > vb.netには、c#がそうではないのにデフォルトのフォームインスタンスがあるのはなぜですか?

vb.netには、c#がそうではないのにデフォルトのフォームインスタンスがあるのはなぜですか?

Susan Sarandon
リリース: 2025-01-30 01:01:39
オリジナル
940 人が閲覧しました

Why Does VB.NET Have a Default Form Instance While C# Does Not?

VB.NETのインスタンスとC#ウィンドウの根本的な違いは何ですか?

vb.net、各ウィンドウにはデフォルトのインスタンスがありますが、C#にはそうではありません。この違いは、異なる言語のさまざまな設計概念に由来しています。 vb.netの属性は、ウィンドウクラスのインスタンスを直接識別しますが、C#にはこのデフォルトインスタンスの概念がありません。

vb.netのデフォルトインスタンス:

(Name)

VB.NETのデフォルトインスタンス設計は、VB6から移行したプログラマを促進することです。 VB6プログラマーは、多くの場合、タイプとタイプのタイプを区別することが困難であり、

属性により、ウィンドウのデフォルトインスタンスに直接アクセスできます。 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デザインの違いの理由:Form1Show() newobjVB.NETとC#の設計上の違いは、それぞれのターゲットユーザーを反映しています。 VB.NETのデフォルトインスタンス特性は、VB6から移動するプログラマーを支援するように設計されています。 C#は、オブジェクト指向の原則に焦点を当て、インスタンス化されたクラスを奨励しているため、開発者がコードをよりよく制御できるようにします。 Form1

以上がvb.netには、c#がそうではないのにデフォルトのフォームインスタンスがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート