這更像是一個「有更好的方式」問題,而不是真正的問題。繼承常量 - 最佳風格?
即有可能僅在一個基類訪問屬性:
private const bool isSomething = true;
我有時在我從這個類繼承的一個項目更改此值。但是,因爲它是一個常數,使用類範圍的,我通常在基類中的代碼更改爲類似這樣:
private const bool isSomething = true;
protected virtual bool IsSomething{
get{
return isSomething;
}
}
,並覆蓋子類中的屬性,並創建一個新的isSomething
不變。
這創造了一個新的領域和覆蓋,在我看來,不是很好的風格。有一個更好的方法嗎?
該值是一個常數,並且在我使用它的完整項目中它將保持不變。
因此無處不在需要您調用IsSomething()而不是? – n8wrl 2011-05-16 20:37:49
@ n8wrl:是的,這是我目前的解決方法,用於覆蓋整個類的常量。 – Michael 2011-05-16 20:44:31
看起來像基類中只讀受保護屬性的完美候選者,不需要虛擬/覆蓋。 – 2011-05-17 00:37:26