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.
En C# 9, il y a ModuleInitializer attribut qui est beaucoup mieux que les constructeurs statiques. Les avantages sont énumérés ci-dessous tels que cités sur le site lié:
- Permet aux bibliothèques de faire une initialisation hâtive, unique fois lors du chargement, avec un minimum de surcharge et sans que l'utilisateur ait besoin d'appeler explicitement quoi que ce soit
- Un point de douleur particulier des approches de constructeur statique actuelles est que le runtime doit effectuer des vérifications supplémentaires sur l'utilisation d'un type avec un constructeur statique, afin de décider si le constructeur statique doit être exécuté ou non. Cela ajoute une surcharge mesurable.
- Permet aux générateurs de code source d'exécuter une logique d'initialisation globale sans que l'utilisateur ait besoin d'appeler explicitement quoi que ce soit
Il s'agit de points très importants et on peut utiliser l'attribut comme suit dans leur classe statique :
[ModuleInitializer]
public static void Init()
{
// Logique
}
Vous pouvez utiliser le modèle Singleton pour répondre à votre exigence. Veuillez trouver le code d'implémentation ici.
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.