私たちは最近、キーが存在することを期待して値を取得するために辞書を呼び出したという問題がありました。プロセスが破られることはありませんでした。ReSharperは辞書キーについて警告していますか?
ReSharperには、ヌルオブジェクトの場合に聞くようなチェック機能がありますか?ここで
は、私が何を言っているかサポートするための例です。
Dictionary<String, Entity> allEntities =
new Dictionary<String, Entity>(SringComparer.OrdinalIgnoreCase);
allEntities.AddMany(db.GetAllEntities());
Entity thisEntity = allEntities[entityID];
// <-- error here as EntityID isn't in all entities...
私はReSharperのは、私はそうのような辞書をチェックしていないと言うことができるようにしたいと思います:
if (allEntities.ContainsKey(entityID))
...
ReSharperはありませんが、これはすべての開発者のためにビジネスケースに追加することの1つです。
ReSharperは、データベース呼び出しがどのような値を生成するかをどのように知ることができますか? –
可能な解決策で質問を更新しました... – cjk
分母がゼロであるかどうかをチェックするために、2つの整数を分割するたびに警告することをお勧めしますか? 'string.Substring'を呼び出すたびに警告して、パラメータが文字列の境界内にあるかどうかを確認したいでしょうか?キーが見つからない場合、 'Dictionary.Item'を取得すると' KeyNotFuondException'がスローされるという事実はほとんど秘密ではありません。 C#開発者は、ツールを思い出させるのではなく、そのことを知ることが期待されるべきだと言う人もいるかもしれません。 – AakashM