Je n'ai pas trouvé mon cas d'utilisation dans les questions existantes, alors j'y vais. J'ai une classe abstraite qui a des génériques comme ceci :
public abstract class aParameter<T>
{
private T _parameter;
public T Parameter
{
get { return _parameter;}
}
...
}
Ensuite, j'ai mes classes "Type" comme ceci :
public class IntParameter : aParameter<Int32>
{
public IntParameter(Int32 value)
{
_parameter = value;
}
}
public class TextParameter : aParameter<String>
{
public TextParameter(String value)
{
_parameter = value;
}
}
Maintenant, dans mon code d'application, je voudrais créer un dictionnaire avec la classe générique abstraite sans spécifier le type générique. Comme ceci :
...
private Dictionary<Int32, aParameter> _paramDict = new Dictionary<Int32, aParameter>();
...
Dans une version précédente, j'utilisais des interfaces au lieu de classes abstraites pour aParameter
mais je voulais la migrer vers l'abstrait pour pouvoir simplifier mes classes de "Type" et ne pas répéter un code identique pour chaque "Type".
Des idées ?
EDITAR
J'ai oublié de mentionner qu'il fera partie d'une bibliothèque destinée à être distribuée au sein de l'entreprise, et que je dois donc vraiment sécuriser les types autorisés. Je ne peux pas autoriser seulement objects
à introduire dans mon code.