在属性中指定允许的枚举值

Hél*_*ves 9 c# validation enums enterprise-library

是否可以指定枚举属性只能有一系列值?

enum Type
{
    None,
    One,
    Two,
    Three
}

class Object
{
    [AllowedTypes(Type.One,Type.Three)]
    Type objType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西?也许我不知道企业库中的一些验证器?!

st4*_*hoo 5

您可以在setter逻辑中进行验证.

编辑:一些例子:

class Object
{
    private Type _value;

    public Type objType{ 

        get{ return _value; }
        set{
            if(value != Type.One && value != Type.Three)
                throw new ArgumentOutOfRangeException();
            else
                _value = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @MrMichael 你会推荐什么? (3认同)