C#の静的コンストラクタへのJava静的ブロック同等のですか?
-
20-09-2019 - |
質問
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では、あなたは、文を実行することができます。
所属していません StackOverflow