Bonjour , comment redéfinir une méthode d'une interface dans une classe qui l'implémente en la mettant static ?
Merci !![]()
Bonjour , comment redéfinir une méthode d'une interface dans une classe qui l'implémente en la mettant static ?
Merci !![]()
Une interface ne peut pas contenir de méthodes ou membre static. Par contre elle peut contenir une méthode virtuelle...
Merci !![]()
Si la méthode est statique, elle n'implémente pas l'interface... Une interface ne peut définir que des membres d'instance. Ce qui est logique, vu qu'on ne peut pas redéfinir une méthode statique dans une classe dérivée...
Oui, mais tu ne peux pas marquer une méthode comme virtuelle dans l'interface... c'est la classe qui implémentera l'interface qui définira si la méthode est virtuelle ou non.
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
J'avais confondu avec les classes abstraites![]()
Salut,
Comment faire en sorte que des classes devant contenir des methodes statiques présentent toutes les mêmes.
Par exemple dans une couche métier que toutes les classes implémentent au moins Insert, GetById, Update, Delete avec des objets types en entrée ou retour.
Si j'ai cette classe:J'obtiens l'interface suivante
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 public class Stock : IBasicBll { #region IBasicBll Members public int Create(StockEntity obj) { throw new Exception("The method or operation is not implemented."); } public object GetById(int id) { throw new Exception("The method or operation is not implemented."); } public bool Update(StockEntity obj) { throw new Exception("The method or operation is not implemented."); } public bool Delete(int id) { throw new Exception("The method or operation is not implemented."); } #endregion }Mais les objets sont typés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public interface IStock { int Create(StockEntity obj); bool Delete(int id); object GetById(int id); bool Update(StockEntity obj); }
Si je remplace mes objets typés par "object"
Je suis obligé de les convertir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public interface IBasicBll { int Create(object obj); object GetById(int id); bool Update(object obj); bool Delete(int id); }Auriez-vous une solution?
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
28
29 public class Stock : IBasicBll { #region IBasicBll Members public int Create(object obj) { StockEntity stock = (StockEntity)obj; return 0; } public object GetById(int id) { StockEntity stock = new StockEntity(); return stock; } public bool Update(object obj) { StockEntity stock = (StockEntity)obj; return true; } public bool Delete(int id) { return true; } #endregion }
Merci.
A+
"Winter is coming" (ma nouvelle page d'accueil)
Tu changes IBasicBll en IBasicBll<T> et tu fais hériter Stock de IBasicBll<StockEntity>.
Partager