我有一個調用一個Action<string>
TDD與設計諮詢
public Action<string> DisplayError;
public void MyMethod()
{
DisplayError("ERROR");
}
在這種方法我想打電話給DisplayError不過,我可以看到,如果DisplayError爲null,將引發異常的方法。
我可以運行一個測試,證明它會拋出異常。
所以我知道我想添加一個if (DisplayError != null)
我的代碼,但我覺得這種設計是錯誤的。也許測試應該是不同的?
儘可能避免傳遞/返回null。在這種情況下,您可以將DisplayError默認爲在調用時不執行任何操作的非操作操作。這是一個像症狀一樣的破碎窗口,第一個空檢查導致空檢查開始在各地發生。一個空引用異常應該表示出了什麼問題,應該儘快通過設計或者提高對如何使用庫的認識來加以修復。 – Gishu 2012-03-20 08:34:59