È un blocco statico Java equivalente a un costruttore statico C #?
-
20-09-2019 - |
Domanda
Qual è la vera differenza tra un costruttore statico C # e un blocco statico Java?
Entrambi devono essere senza parametri. Entrambi sono chiamati solo una volta, quando la classe correlata primo utilizzo.
Mi manca qualcosa, o sono la stessa cosa, solo con nomi diversi?
Soluzione
Sono equivalenti, tranne che una classe C # può avere un solo costruttore statico (più inizializzatori campo statico).
Inoltre, in C #, un costruttore static
applicherà la beforefieldinit
bandiera .
Altri suggerimenti
Si guardano lo stesso, l'esempio seguente mostra, che costruttore statico c # funziona lo stesso blocco statico in Java
protected Singleton()
{
Console.WriteLine("Singleton constructor");
}
private static readonly Singleton INSTANCE;
static Singleton() {
try {
INSTANCE = new Singleton();
}
catch(Exception e) {
throw new Exception();
}
}
Si Essi sono equivalenti Un altro punto è Java non supporta costruttore statico ma supporta blocco statico e costruttore statico C # sostegno.
Non sono.
In C #, ci blocchi può contenere solo i costruttori. In Java si è in grado di eseguire istruzioni.