我有一个 enum :

public enum Enumeration
{
    A,
    B,
    C
}

以及一种采用 Enumeration 类型参数的方法:
public void method(Enumeration e)
{
}

我希望 method 只能接受 AB ( C 被认为是错误的值),但我的 C 中需要 Enumeration 因为其他方法可以接受它作为正确的值。做这个的最好方式是什么?

最佳答案

我不会只拒绝 C 。我会拒绝 AB 以外的任何值:

if (e != Enumeration.A && e != Enumeration.B)
{
    throw new ArgumentOutOfRangeException("e");
}

这很重要,否则人们可以调用:
Method((Enumeration) -1);

它会通过你的验证。您始终需要注意枚举实际上只是一组命名整数 - 但任何正确基础类型的整数都可以转换为枚举类型。

关于c# - 管理枚举字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11172145/

10-10 09:05