web-dev-qa-db-fra.com

Constructeur de classe statique C #

Existe-t-il un moyen de contourner le problème de la création d'un constructeur pour une classe statique?

J'ai besoin de charger certaines données lors de l'initialisation de la classe mais je n'ai besoin que d'un seul objet.

111
jM2.me

C # a un constructeur statique à cette fin.

static class YourClass
{
    static YourClass()
    {
        // perform initialization here
    }
}

À partir de MSDN :

Un constructeur statique est utilisé pour initialiser des données statiques ou pour effectuer une action particulière devant être effectuée une seule fois. Il est appelé automatiquement avant la création de la première instance ou la référence des membres statiques.

lien MSDN

.

197
Jared S

Un constructeur statique ressemble à ceci

static class Foo
{
    static Foo()
    {
         // Static initialization code here
    }
}

Il n'est exécuté qu'une fois lors de la première utilisation du type. Toutes les classes peuvent avoir des constructeurs statiques, pas seulement des classes statiques.

41
Sven

Oui, une classe statique peut avoir un constructeur statique, et l'utilisation de ce constructeur est l'initialisation d'un membre statique.

static class Employee1
{
    static int EmpNo;
    static Employee1()
    {
        EmpNo = 10;
        // perform initialization here
    }
    public static void Add()
    { 

    }
    public static void Add1()
    { 

    }
}

et le constructeur statique sont appelés une seule fois lorsque vous avez accès à un membre du type de la classe static avec le nom de la classe Class1

Supposons que vous accédiez au premier champ EmployeeName, puis que le constructeur soit appelé cette fois, après quoi il ne sera pas appelé, même si vous accéderez au même type de membre.

 Employee1.EmployeeName = "kumod";
        Employee1.Add();
        Employee1.Add();
3
Kumod Singh

Constructeur statique

Un constructeur déclaré à l'aide d'un modificateur statique est un constructeur statique. Un constructeur statique est utilisé pour initialiser des données statiques ou pour effectuer une action particulière qui ne doit être effectuée qu'une fois dans le cycle de vie de la classe. Le constructeur statique est le premier bloc de code à exécuter en classe. Le constructeur statique exécute une et une seule fois dans le cycle de vie d'une classe. Cela s'appelle automatiquement. Le constructeur statique ne prend aucun paramètre. Il n'a pas de spécificateurs d'accès. Ce n'est pas appelé directement.

C # a un constructeur statique pour cet objectif.

static class YourClass
{
    static YourClass()
    {
        //initialization
    }
}
3
Hasan Fathi

Nous pouvons créer un constructeur statique

static class StaticParent 
{
  StaticParent() 
  {
    //write your initialization code here

  }

}

et il est toujours paramètre moins.

static class StaticParent
{
    static int i =5;
    static StaticParent(int i)  //Gives error
    {
      //write your initialization code here
    }
}

et il n'a pas le modificateur d'accès

0
Shivang Gupta

Vous pouvez utiliser le constructeur statique pour initialiser la variable statique. Le constructeur statique sera le point d’entrée de votre classe

public class MyClass
{

    public static MyClass()
    {

        //write your initialization code here
    }

}
0
Pavan Tiwari