【发布时间】:2012-10-15 22:18:23
【问题描述】:
如何将枚举作为方法的参数之一传递?我只需要该方法的某些实现,而在其他实现中不需要。这就是方法声明的样子:
public abstract void SomeMethod(params object[] someParams);
这就是我希望某些实现看起来的样子:
public override void SomeMethod(params object[] someParams) {
SomeEnum someEnum = someParams[0];
if (someEnum == null)
return;
}
当然,这段代码是无效的,但它显示了我打算做什么。该方法的其他实现可能使用其他枚举,或者根本不使用枚举。
更新: 正如许多人所说,这是一件非常奇怪的事情,将类型安全抛到了窗外。所以,我决定解释一下我这样做的原因。
我必须将方法调用传递给一个类的许多不同子类,在这些子类中,我通过一个系统声明此方法,该系统通过网络(以及本地)发送它们并在特定时间以特殊顺序执行它们。有没有更好的方法来做到这一点?
【问题讨论】: