qu'est-ce que le c# équivalent de statique {...} en Java?
En Java, je peux écrire:
public class Foo {
public static Foo DEFAULT_FOO;
static {
DEFAULT_FOO = new Foo();
//initialize
DEFAULT_FOO.init();
}
public Foo() {
}
void init() {
//initialize
}
}
Comment puis-je obtenir le même functionailty en C# (où les membres statiques sont initialisés avant de l'utiliser)? Et, si c'est une mauvaise chose pour essayer de faire, ce qui est une meilleure approche?
Vous devez vous connecter pour publier un commentaire.
vous utilisez un constructeur statique, comme ceci:
Voici plus d'infos.
Bottom line: c'est un paramaterless constructeur avec la
static
mot-clé attaché à elle. Fonctionne exactement comme le bloc statique en Java.Edit: plus qu'Une chose à mentionner. Si vous voulez juste pour construire quelque chose de statique, vous pouvez statiquement initialiser une variable sans la nécessité pour le constructeur statique. Par exemple:
Garder à l'esprit que vous aurez besoin d'un constructeur statique si vous voulez appeler une méthode sur la Barre pendant l'initialisation statique, de sorte que votre exemple qui appelle
Foo.Init()
a toujours besoin d'un constructeur statique. Je suis juste sayin' vous n'êtes pas limité, c'est tout. 🙂Statique est encore le mot-clé en C#:
()
dans la lignestatic Foo() {...}
.