Ce code d'une classe de mine avec une coutume indexer:Un paramètre d'indexeur peut-il être nul?
public string this[string key]
{
get => /* ... */;
set
{
if (key != null) doSomething(key, value);
}
}
Maintenant, ReSharper souligne le chèque et dit key != null
:
L'expression est toujours vrai.
Bien que je pense que ReSharper est correct ici, je ne peux pas comprendre pourquoi.
Peut-être que the language spec impose cela?
Ma question:
un paramètre indexeur peut-il jamais être nul?
Mise à jour 1:
Avant de supprimer ma question à cause de moi étant trop bête, juste une note expliquant pourquoi ReSharper a écrit l'avertissement:
Je tirais ma classe de IDictionary<TKey, TValue>
qui semble être annoté par ReSharper ne doit pas avoir null
pour le paramètre indexeur.
Ainsi, l'avertissement. Désolé de poster une telle non-question.
_ "Je crois que ReSharper est correct ici" _ - pourquoi croyez-vous cela? il aurait été assez facile pour vous de vérifier, et vous auriez trouvé que non. Cela suppose, bien sûr, que vous nous ayez montré tous les détails pertinents. –
R # semble être incorrect ici. Cependant un indexeur * ne devrait pas être nul, mais sûrement il peut *. – HimBromBeere
Bon point, @PeterDuniho Dois-je supprimer ma question ici? –