Spo*_*ike 13 c# enums static-members
所以我查看了一些已签入的代码,我对此感到困惑:
// Amount of days before cancellation can't be done
enum Cancellation { Limit = 2 };
Run Code Online (Sandbox Code Playgroud)
询问检查它的人他认为使用枚举而不是静态变量要好得多,比这更好:
private static int CANCELLATION_LIMIT = 2;
Run Code Online (Sandbox Code Playgroud)
所以我们开始争论.我的论点是他使用枚举作为存储值的方法(如果有两个具有相同值的枚举符号,它将会中断).他认为在类中使用静态变量是反模式.
我的问题是应该采用哪种最佳做法?
枚举是键入的.
也就是说,如果你有一个方法,你必须将某个'状态'传递给一个方法,你只能传递'有效'参数.例如:
enum OrderState
{
pending = 1,
shipped = 2
}
public IList<Order> GetOrdersInState( OrderState )
{
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的例子 - 使用枚举的方式.当OrderState是一个为其创建2个const整数的int时,您没有限制并且能够传递无效值.编译器不会抱怨.
但是,你提出的情况,我认为使用枚举不是一个有效的解决方案.使用int是一种误用,应该使用const int.
枚举很好,但应该在必须使用的地方使用.在任何情况下,它们都不是首选工具.在这种情况下,使用const或static var不是反模式.
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |