Y a-t-il une solution pour créer un constructeur pour une classe statique?
J'ai besoin que des données soient chargées lorsque la classe est initialisée mais je n'ai besoin que d'un seul objet.
Y a-t-il une solution pour créer un constructeur pour une classe statique?
J'ai besoin que des données soient chargées lorsque la classe est initialisée mais je n'ai besoin que d'un seul objet.
Le langage C# dispose d'un constructeur statique à cette fin.
static class VotreClasse
{
static VotreClasse()
{
// effectuer l'initialisation ici
}
}
Depuis MSDN:
Un constructeur statique est utilisé pour initialiser des données statiques, ou pour effectuer une action particulière qui doit être effectuée une seule fois. Il est appelé automatiquement avant que la première instance ne soit créée ou que des membres statiques ne soient référencés.
.
Un constructeur statique ressemble à ceci
class statique Foo
{
static Foo()
{
// Code d'initialisation statique ici
}
}
Il est exécuté seulement une fois lorsque le type est utilisé pour la première fois. Toutes les classes peuvent avoir des constructeurs statiques, pas seulement les classes statiques.
En réalité, "Il est appelé automatiquement AVANT que la première instance ne soit créée ou que des membres statiques ne soient référencés" msdn.microsoft.com/en-us/library/k9x6w0hc.aspx
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;
// effectuer l'initialisation ici
}
public static void Add()
{
}
public static void Add1()
{
}
}
et le constructeur statique est appelé une seule fois lorsque vous avez accès à un membre de type statique de la classe statique avec le nom de classe Class1
Supposons que vous accédiez au premier champ EmployeeName, alors le constructeur est appelé cette fois-ci, après cela il ne sera pas appelé, même si vous accédez au même membre de type.
Employee1.EmployeeName = "kumod";
Employee1.Add();
Employee1.Add();
Nous pouvons créer un constructeur statique
static class StaticParent
{
StaticParent()
{
//écrivez votre code d'initialisation ici
}
}
et il est toujours sans paramètre.
static class StaticParent
{
static int i =5;
static StaticParent(int i) //Donne une erreur
{
//écrivez votre code d'initialisation ici
}
}
et il n'a pas le modificateur d'accès
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.