Bonjour,
J'ai créé une classe template:
Je la définis en singleton:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class MyClassTemplate<Type> where Type: class { public MyClassTemplate() { ... } ... }
Je veux utiliser cette classe par héritage afin de la spécialiser en lui rajoutant des méthodes:
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 public class MyClassTemplate<Type> where Type: class { protected MyClassTemplate() { } private static MyClassTemplate<Type> m_TheInstance; public static MyClassTemplate<Type> TheInstance { get { if (m_TheInstance == null) { m_TheInstance = new MyClassTemplate<Type>(); } return m_TheInstance; } } }
Malheureusement, comme TheInstance est hérité et correspond à MyClassTemplate<Type> et non à ClassTemplateString, impossible d'accéder aux méthodes de ClassTemplateString:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public ClassTemplateString : MyClassTemplate<String> { public void Test() {} ... }
J'aimerai en fait éviter de recoder la partie singleton pour chaque classe fille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Erreur ! ClassTemplateString.TheInstance.Test();
Merci d'avance pour vos remarques et suggestions,
AL2000
Partager