質問

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

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

ちょうど別の名前で、私は何かが欠けている、またはそれらは同じものですかな?

役に立ちましたか?

解決

これらは、C#クラスが一つだけの静的コンストラクタ(プラス静的フィールド初期化子)を持つことができることを除いて、等価です。

また、C#で、staticコンストラクタは beforefieldinitフラグを適用します。

他のヒント

彼らは同じで、次の例に示す、その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();
        }
    }

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

彼らはそうではありません。

は、C#では、そこにブロックが唯一のコンストラクタを保持することができます。 Javaでは、あなたは、文を実行することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top