Je modélise une liste de clés de base de données fortement typées. Certains seront ints, des cordes, des GUIDs etc.Recherche d'un modèle de conception en C# pour une liste fortement typée
EDIT Ils sont fortement typés dans le sens que certaines des clés contiendra des valeurs entières, des chaînes, des UIDs etc.
Donc, si ma classe pour la clé était "Key" et ma liste était List<Key>
Je cherche comment implémenter l'aspect fortement typé. Je ne veux pas utiliser de génériques car je ne pense pas que ce soit approprié ici (prouver que je me trompe).
Je pense à créer une classe "Key" et abstraite et à faire en sorte que chaque sous-classe implémente l'aspect fortement typé. Mais ce sera aussi désordonné. (voir ci-dessous)
Quelqu'un a-t-il de meilleures idées?
public abstract class RowKey
{
public string DbName { get; set; }
public abstract object GetTypedValue();
}
public class IntegerRowKey: RowKey
{
public override object GetTypedValue()
{
return 1;
}
}
Je suppose que les génériques * sont * la bonne solution ici, mais vous n'avez pas montré ce que vous voulez faire avec la liste. Essayez-vous d'avoir une liste de * type * de type rowkey, ou de type de clé potentiellement différent *? –
Comment est-ce "fortement typé"? Comment utilisez-vous les clés? – SLaks
L'idée était qu'ils pourraient être des types de clés potentiellement différents mais du même type (afin qu'ils puissent partager un comportement commun, c'est juste les types qui diffèrent). La raison pour laquelle je me gardais des génériques était que j'avais lu qu'une liste de différents types ne convenait pas aux génériques – AJM