12

C# 静的コンストラクターと Java 静的ブロックの実際の違いは何ですか?

どちらもパラメーターなしでなければなりません。どちらも、関連するクラスが最初に使用されるときに一度だけ呼び出されます。

何かが足りないのですか、それとも名前が違うだけで同じものですか?

4

4 に答える 4

10

C# クラスは静的コンストラクター (および静的フィールド初期化子) を 1 つしか持てないことを除いて、これらは同等です。

また、C# では、staticコンストラクターがbeforefieldinitflagを適用します。

于 2010-03-17T19:35:03.280 に答える
2

それらは同じように見えます。次の例は、c#静的コンストラクターがJavaの静的ブロックと同じように機能することを示しています。

protected Singleton()
{
    Console.WriteLine("Singleton constructor");
}

    private static readonly Singleton INSTANCE;

    static Singleton() {
        try {
           INSTANCE = new Singleton();
        }
        catch(Exception e) {
            throw new Exception();
        }
    }
于 2011-10-12T11:01:06.590 に答える
0

はい、同等ですもう1つのポイントは、Javaは静的コンストラクターをサポートしていませんが、静的ブロックをサポートしており、C#は静的コンストラクターをサポートしています。

于 2016-01-27T11:45:25.533 に答える
-2

ではない。

C# では、コンストラクターのみを保持できるブロックがあります。Java では、ステートメントを実行できます。

于 2010-07-21T20:26:55.753 に答える