c# a constructeur statique qui n'certains d'initialisation. (Probablement Faire quelques non managé des ressources d'initialisation) je me demande s'il est statique destuctor?
Réponses
Trop de publicités?C'est le meilleur moyen (réf.: http://stackoverflow.com/a/256278/372666)
public static class Foo
{
private static readonly Destructor Finalise = new Destructor();
static Foo()
{
// One time only constructor.
}
private sealed class Destructor
{
~Destructor()
{
// One time only destructor.
}
}
}
Non, il n'y en a pas.
Statique destructeur de soi-disant aurait exécuté à la fin de l'exécution d'un processus. Lorsqu'un processus meurt, toute la mémoire/poignées associées à il sera libéré par le système d'exploitation.
Si votre programme doit faire une action spécifique à la fin de l'exécution (comme une base de données transactionnelle moteur, rinçage son cache), il va être beaucoup plus difficile à gérer correctement que juste un morceau de code qui s'exécute à la fin de l'exécution normale du processus. Vous devez manuellement gérer les blocages et la fermeture inattendue du processus et tenter de le récupérer lors de la prochaine exécution de toute façon. La "statique destructeur" concept ne serait pas beaucoup.