我有一個enum DoStuff
,其值爲before
,after
或none
。這些名字並不是真正的名字,但它可以說明問題。該班級有一個方法foo
。有沒有更好的方式來編寫這段代碼?
下面是一組只讀屬性,不同類型的,每個看起來如下:
public [type] MyProperty {
get {
if(enumValue == DoStuff.Before)
foo();
[type] result = //Do calculations here
if(enumValue == DoStuff.After)
foo();
return result;
}
}
有抽象這些前/後計算召喚出來的一種方式?我現在能想到的兩種解決方案:
創建需要一個委託,並在適當的地方調用
foo
的私有方法。複雜的平臺上缺乏泛型我寫這個。讓既沒有包裝調用一個不可基類,並從中獲得一個前和子類訪問基類的屬性,與呼叫在適當的地方
後是否有一個衆所周知的模式對於這種結構?
作爲對風格的一般評論,除了初始化目的外,我會避免更改屬性getter中的狀態。 – Reddog 2011-06-10 20:37:05
無限遞歸! – 2011-06-10 20:38:55
@丹濤:哎呀。我的錯。 – Eric 2011-06-10 20:42:49