Blocs de code statiques

Passer de Java à C# J’ai la question suivante: En Java, je pouvais faire ce qui suit:

 public class Application { static int atsortingbute; static { atsortingbute = 5; } // ... rest of code } 

Je sais que je peux l’initialiser à partir du constructeur, mais cela ne correspond pas à mes besoins (je veux initialiser et appeler certaines fonctions utilitaires sans créer l’object). Est-ce que C # supporte cela? Si oui, comment puis-je le faire?

Merci d’avance,

 public class Application() { static int atsortingbute; static Application() { atsortingbute = 5; } // ..... rest of code } 

Vous pouvez utiliser les constructeurs statiques équivalents C #. S’il vous plaît ne le confondez pas avec un constructeur régulier. Un constructeur régulier n’a pas de modificateur static devant lui.

Je suppose que votre //... rest of the code doit être exécuté une fois. Si vous ne disposez pas d’un tel code, vous pouvez simplement le faire.

  public class Application() { static int atsortingbute = 5; } 

Vous pouvez juste écrire un constructeur statique comme celui-ci,

 static Application(){ atsortingbute=5; } 

C’est ce que je pourrais penser.

Dans votre scénario particulier, vous pouvez effectuer les opérations suivantes:

 public class Application { static int atsortingbute = 5; // ... rest of code } 

METTRE À JOUR:

On dirait que vous voulez appeler une méthode statique. Vous pouvez le faire comme suit:

 public static class Application { static int atsortingbute = 5; public static int UtilityMethod(int x) { return x + atsortingbute; } } 

Je trouve quelque chose d’autre utile. Si votre variable nécessite plus d’une expression / instruction pour l’initialiser, utilisez-la!

 static A a = new Func(() => { // do it here return new A(); })(); 

Cette approche n’est pas limitée aux classes.

-Un constructeur statique n’a pas de paramètre.
-Une classe statique ne peut contenir qu’un seul constructeur statique.
-Un constructeur statique s’exécute en premier lorsque nous exécutons le programme.

Exemple:

 namespace InterviewPreparation { public static class Program { //static Class static Program() { //Static constructor Console.WriteLine("This is static consturctor."); } public static void Main() { //static main method Console.WriteLine("This is main function."); Console.ReadKey(); } } } 

Sortie:
C’est un constructeur statique.
C’est la fonction principale.