在方法.Net中声明枚举

时间:2014-11-19 03:23:24

标签: .net enums

我可以在.NET中的方法中声明一个类型为Enum吗?我怎样才能做到这一点?这是因为,有时候,我只需要一个快速的临时枚举来获取方法中的代码可读性,并且该枚举不会在方法之外的任何其他地方使用。

1 个答案:

答案 0 :(得分:0)

你可以做一些疯狂的代码,你可以在运行时使用Emit生成一个c#枚举,但这看起来有些过分。

enum被编译成一类常量值。如果您想在方法中使用一组常量值,只需声明本地const变量:

public void Foo(int value)
{
    const deflection_short = 1;
    const deflection_long = 2;
    const deflection_concrete = 3;

    if (value == deflection_short) { ... }
}

编译器将简单地用实际常量值替换所有用法,这非常有效,并且您将使用友好名称而不是幻数。虽然,使用本地方法之外存在的真实枚举,您将能够传递同样友好的参数(即Foo(Deflection deflection) { ... }