C#の静的コンストラクタと非静的コンストラクタ

これは、staticキーワードを追加するコンストラクタメソッドの前で静的コンストラクタ、および無修飾(パブリック、プライベート)、パラメータなし後に形成されました。

特徴:
1は、静的コンストラクタは、.NET Frameworkが適切なタイミングで呼び出すことにより、私たちのプログラマは、呼び出していないため、静的コンストラクタは、(パブリック、プライベート)修飾子がないことを修正します。
フレームワークは、我々はあなたが指定したパラメータを使用することはできませんので、関数のパラメータを追加する必要があるかを知ることは不可能であるため、2、静的コンストラクタは、パラメータはありません。
3、静的コンストラクタの前にstaticキーワードでなければなりません。このキーワードを追加しない場合、それは一般的なコンストラクタです。
4、静的コンストラクタインスタンス変数をインスタンス化することができません。(変数は、クラス、インスタンスレベルの変数に分割することができ、クラスレベルは、静的キーワードを変更しました)。
クラスは、静的メンバ変数を初期化する静的コンストラクタを呼び出すことにより、インスタンス化または静的メンバーを呼び出し、と.NET Frameworkされたとき、図5に示すように、静的関数呼び出しのタイミングが呼び出されます。
6、クラスには、静的コンストラクタを持つことができます。
7、引数なしで引数なしのコンストラクタと静的コンストラクタは共存できません。彼らはクラスレベル、インスタンスレベルの一部に、ない紛争に属しているため。
8、静的コンストラクタは一度だけ実行されます。そして、通話機能における5のタイミングと呼ばれています。
9.あなたはクラスのコンストラクタを記述しない場合は、フレームワークは、私たちのコンストラクタを生成しますので、私たちはクラスの静的変数を定義し、それは静的コンストラクタを定義しない場合、フレームワークは、静的に生成するために私たちを助けますフレーム自体を作るために呼び出すコンストラクタ。

使用してシステムを。
使用してSystem.Collections.Genericを。
使用してSystem.Linqのを。
使用してSystem.Textのを。
使用してSystem.Threading.Tasksを。

名前空間ConsoleApp1 
{ 
    クラスA 
    { 
        静的A()
        { 
            Console.WriteLineを(" 1 " )。
        } 
        パブリックA()
        { 
            Console.WriteLineを(" 2 " )。

        } 
    } 
    クラスB:
    { 
        静的B() 
        {
            Console.WriteLineを(" A " ); 
        } 
        パブリックB()
        { 
            Console.WriteLineを(" B " )。

        } 
    } 
    クラスプログラム
    { 
        静的 ボイドメイン(文字列[]引数)
        { 
           // 1 2 B 
            A AB = 新しいB(); 
            Console.WriteLineを(" -------- " );
            // 2 B 
            、AB = 新しい B();
            Console.ReadKey()。
        } 
    } 
}

結果:

 

1、A ab = new B();

A. Bを、静的コンストラクタの実行== B出力の例`A `

BのコンストラクタのB.実装、Bから継承するためにA、第一A

C.例行うA、静的コンストラクタAを、出力== '1 '

D.実装コンストラクタ出力== 「2

E. Bの==の最後に、コンストラクタ戻る出力'B'

2、ab = new B();

静的コンストラクタは一度だけ作成されますので、彼らは静的コンストラクタに入りませんので 

A. Bから継承するためにA、最初==出力のコンストラクタ'2 '

B. Bの==出力のコンストラクタを再入力'B'


オリジナルリンク:https://blog.csdn.net/hyunbar/article/details/81171335

 

おすすめ

転載: www.cnblogs.com/wintertone/p/11513085.html