Tout ce que je veux, c'est un dictionnaire qui me dit quelle clé il n'a pas pu trouver, plutôt que de simplement dire The given key was not present in the dictionary
. J'ai brièvement envisagé de faire une sous-classe avec override new this[TKey key]
, mais j'ai trouvé que c'était un peu hack, donc j'ai mis en place l'interface IDictionary, et j'ai passé tout directement à un dictionnaire interne, avec la seule logique supplémentaire dans le indexeur:"Verbose Dictionary" en C#, 'redéfinir nouveau' this [] ou implémenter IDictionary
public TValue this[TKey key]
{
get
{
ThrowIfKeyNotFound(key);
return _dic[key];
}
set
{
ThrowIfKeyNotFound(key);
_dic[key] = value;
}
}
private void ThrowIfKeyNotFound(TKey key)
{
if(!_dic.ContainsKey(key))
throw new ArgumentOutOfRangeException("Can't find key [" + key + "] in dictionary");
}
Est-ce le droit/seulement aller? Est-ce que le fait de se réjouir de ce [] serait vraiment si mauvais?
Je suis tellement content que les utilisateurs # 1 et # 2 soient du bon côté de la planète :) – Benjol