我有一个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