Bonjour,

Je cherche à coder une fonction générique.
La classe générique ici T est de type EntityClass.
EntityClass a uniquement un constructeur qui prend un paramètre : EntityClass(DataRow monParamètre)

Mon problème c'est que je n'arrive pas à écrire ma fonction générique . Comment faire dire au compilateur que le constructeur du générique T prend un paramètre ?

Ce code ne passe pas (partie en rouge pose problème):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
private List<T> GetListOfEntities<T>(string sSql, string sTableName) where T : EntityClass, new()
{
      ...
      T maVariable=new T(monParamètre);
      ...
}
J'ai trouvé un workaround mais pas très joli (consiste à ajouter une méthode setParameter, le code compile alors):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
private List<T> GetListOfEntities<T>(string sSql, string sTableName) where T : EntityClass, new()
{
      ...
      T maVariable=new T();
      maVariable.setParameter(monParamètre)
      ...
}