C# 静的コンストラクターと Java 静的ブロックの実際の違いは何ですか?
どちらもパラメーターなしでなければなりません。どちらも、関連するクラスが最初に使用されるときに一度だけ呼び出されます。
何かが足りないのですか、それとも名前が違うだけで同じものですか?
C# 静的コンストラクターと Java 静的ブロックの実際の違いは何ですか?
どちらもパラメーターなしでなければなりません。どちらも、関連するクラスが最初に使用されるときに一度だけ呼び出されます。
何かが足りないのですか、それとも名前が違うだけで同じものですか?
C# クラスは静的コンストラクター (および静的フィールド初期化子) を 1 つしか持てないことを除いて、これらは同等です。
また、C# では、static
コンストラクターがbeforefieldinit
flagを適用します。
それらは同じように見えます。次の例は、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();
}
}
はい、同等ですもう1つのポイントは、Javaは静的コンストラクターをサポートしていませんが、静的ブロックをサポートしており、C#は静的コンストラクターをサポートしています。
ではない。
C# では、コンストラクターのみを保持できるブロックがあります。Java では、ステートメントを実行できます。