Est-ce un bloc Java statique équivalent à un constructeur statique C #?
-
20-09-2019 - |
Question
Quelle est la différence entre un C # constructeur statique et un bloc Java statique?
Les deux doivent être parameterless. Ils sont tous deux appelés qu'une seule fois, lorsque la classe est liée d'abord utilisée.
Suis-je manque quelque chose, ou sont-ils la même chose, juste avec des noms différents?
La solution
Ils sont équivalents, sauf qu'une classe C # ne peut avoir qu'un seul constructeur statique (plus initialiseurs champ statique).
En outre, en C #, un constructeur de static
appliquera la beforefieldinit
drapeau.
Autres conseils
Ils regardent la même chose, l'exemple suivant montre que c # constructeur statique fonctionne comme bloc statique java
protected Singleton()
{
Console.WriteLine("Singleton constructor");
}
private static readonly Singleton INSTANCE;
static Singleton() {
try {
INSTANCE = new Singleton();
}
catch(Exception e) {
throw new Exception();
}
}
Oui, ils sont équivalents Un autre point est java ne prend pas en charge constructeur statique mais le support bloc statique et c # support constructeur statique.
Ils ne sont pas.
En C #, il ne peut contenir que des blocs constructeurs. En Java, vous êtes en mesure d'exécuter des instructions.