J'écris une application C# .NET. J'ai un formulaire. Lorsque le formulaire est créé, je crée une instance d'une classe. Lorsque je ferme le formulaire, je veux disposer de la classe afin que la prochaine fois que j'ouvre le formulaire, je puisse simplement créer une nouvelle instance de la classe. Donc, dans l'événement form_Closing j'ai ajouté un code comme ceci: classInstance = null;
Le problème est, pour une raison quelconque, la prochaine fois que j'ouvre le formulaire, la classe n'est pas égale à zéro mais plutôt dans le même état qu'avant la fermeture la forme. Pourquoi cela arrive-t-il?Comment puis-je réinitialiser une classe?
EDIT: Ajout d'informations:
myHandler est un champ dans la classe Form. il ressemble à ceci:
private HSFW_Handler myHandler;
La classe que je fais référence est un singleton si je crée comme ceci:
public static HSFW_Handler GetInstance()
{
if (myHSFW == null)
{
myHSFW = new HSFW_Handler();
return myHSFW;
}
else return myHSFW;
}
je créer une instance initiale de celui-ci en cas Form_Shown
private void SetupDialogForm_Shown(object sender, EventArgs e)
{
try
{
myHandler = HSFW_Handler.GetInstance();
UpdateDisplay();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
La clôture du formulaire ressemble à ceci ...
private void SetupDialogForm_FormClosing(object sender, FormClosingEventArgs e)
{
myHandler = null;
}
Pouvez-vous réduire à un extrait qui illustre le problème. Le code de création/show de formulaire et le code de fermeture. – ChrisF
"Lorsque le formulaire est créé, je crée une instance d'une classe." - Êtes-vous sûr de ne pas créer une autre instance de cette classe lorsque vous ouvrez le formulaire la prochaine fois? – dtb
Il se passe probablement autre chose. Que faites-vous d'autre à la classe? – MCain