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