【发布时间】:2014-02-07 00:51:32
【问题描述】:
我正在处理的应用程序中有几个加载可选参数的方法,其中一些是枚举。目前,为了做到这一点,我正在编写具有类似签名类型的方法:
public void SomeMethod(string myFirstParam = "", string mySecondParam = "", MyEnum myThirdParam = (MyEnum )(-1)){
if (myThirdParam != (MyEnum ) (-1))
{
//do something with it
}
}
所以我的第一个问题是,这种方法是否存在一些我还没有意识到的陷阱,但随着时间的推移会痛苦地意识到,其次,是否有更合适的 - 或者至少是优雅的解决方案?
我应该说我们控制这个方法的输入,它是在内部使用的,所以我不担心有人会输入 -1 的值来搞砸工作。
【问题讨论】:
-
为什么不给你的 MyEnum 添加一个额外的值,比如“MyEnum.DEFAULT”?所以你不需要投 -1。
-
我同意。比制作一个可以为空的参数并不得不到处使用 .HasValue 或 .Value 更好,只需给枚举一个“UNKNOWN”值。
标签: c# enums optional-parameters