J'ai un ensemble de classes qui sont toutes capables d'être construites avec un argument étant une instance d'une interface particulière. Puisqu'ils peuvent tous être construits par ce même objet (et le processus au cours duquel cette construction se produit est en grande partie le même dans tous les cas), j'ai pensé que peut-être que le modèle fonctionnerait. Au fond, je veux faire quelque chose comme ceci:Modèles C# et constructeurs spéciaux
public static void dostuff<T, U> (List<T> items)
{
foreach (T item in items)
{
func(new U(item).SpecialMember);
}
}
Bien sûr, cela ne compilera pas depuis U
est basé sur un modèle et ne dispose pas ainsi SpecialMember
ainsi que le constructeur T
. Fondamentalement, toute implémentation donnée de l'inteface T
a certaines caractéristiques. U
est une implémentation de T which has an additional feature that is needed *and* which can be constructed from an any instance of
U`.
Conseil?