我們最近遇到了一個問題,我們調用一個字典來檢索一個值,期望密鑰存在。這不會導致流程中斷。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,但這是將所有開發人員都添加到商業案例中的一件事。
您如何期待ReSharper知道您的數據庫調用會產生什麼值? –
已更新的問題與可能的解決方案... – cjk
您是否還希望每次分割兩個整數時都會警告您,以檢查分母是否爲零?你是否還希望每次調用'string.Substring'時都會發出警告,檢查參數是否在字符串的範圍內?如果沒有找到密鑰,那麼獲取'Dictionary.Item'會拋出'KeyNotFuondException'的事實不是祕密;有些人可能會說C#開發人員應該知道*,而不是被工具提醒...... – AakashM