Bonjour
Je farfouille pour trouver quelques bon exemple d'implémentation de Form Singleton
Suggestions ou lien sur le sujet sont bienvenus
Merci![]()
Bonjour
Je farfouille pour trouver quelques bon exemple d'implémentation de Form Singleton
Suggestions ou lien sur le sujet sont bienvenus
Merci![]()
C'est à dire ? tu veux implémenter le pattern singleton pour une Form ? En quoi est-ce différent des autres types ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Salut
A priori ce n'est pas particulierement différent mais une Form est quand meme une classe un peu particuliere ne fut-ce que par son interaction directe avec l'utilisateur (close etc)
Sincerement il m'est arrivé une seule fois en 2 ans de devoir réellement utiliser une classe singleton
Dans le cas present j'entrevois le besoin et l'intéret d'une Form singleton et je me demandais s'i y avais quelques remarques ou suggestions particulières !
A priori il n'y a pas de précautions particulières à prévoir par rapport à n'importe quel autre type...
Voilà une implémentation basique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public class MyForm : Form { // Constructeur privé pour empêcher la création d'instances // à partir de l'extérieur de la classe private MyForm() { InitializeComponent(); } private static MyForm _instance; public static MyForm Instance { get { if (_instance == null) { _instance = new MyForm(); } return _instance; } } ... }
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Merci
En me basant sur d'autres exemple il y a aussi un intéret à la gestion eventuelle et interne du close pour rendre l'instance nulle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 class ListSingletonForm : Form { protected ListSingletonForm() { } private static ListSingletonForm _instance = null; public static ListSingletonForm Instance { get { if (_instance == null) { _instance = new ListSingletonForm(); _instance.FormClosed += new FormClosedEventHandler(detruit); } return _instance; } } static void detruit(object sender, FormClosedEventArgs e) { _instance.FormClosed -= new FormClosedEventHandler(detruit); _instance = null; } }
Pourquoi pas... mais je me serais plutôt basé sur l'évènement Disposed
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Partager