我發現在我的代碼中出現以下錯誤的頻率太高,想知道是否有人知道一些好的策略來避免它。C#:避免由不重寫引起的錯誤ToString
想像這樣的一類:
public class Quote
{
public decimal InterestRate { get; set; }
}
在某些時候,我創建使用利率的字符串,像這樣:
public string PrintQuote(Quote quote)
{
return "The interest rate is " + quote.InterestRate;
}
現在想象一下,在以後的日子我重構了的InterestRate財產從小數到它自己的類:
public class Quote
{
public InterestRate InterestRate { get; set; }
}
...但說我忘了以覆蓋InterestRate類中的ToString方法。除非我仔細查看InterestRate屬性的每個用法,否則我可能永遠不會注意到它在某個時刻正在轉換爲字符串。編譯器肯定不會選擇它。我唯一的救星機會就是通過集成測試。
下一次我打電話給我的PrintQuote方法,我會得到一個字符串是這樣的:
「利率是Business.Finance.InterestRate」。
Ouch。這怎麼可以避免?
我真的不認爲你想讓編譯器爲你構建任意的ToString()實現。 – 2009-06-29 00:58:13