-1

Given this:

public enum SomeTypes
{
    SomeType1 = 1,
    SomeType2 = 2,
    SomeType3 = 3
}

and a class:

public SomeClass
{
public SomeTypes SomeType { get; set; };
}

What is the best way to check if the enum is within range (i.e. not 0). I guess it would involve IsDefined?

4

2 回答 2

2
public enum SomeTypes {
    SomeType1 = 1,
    SomeType2 = 2,
    SomeType3 = 3
}
public class SomeClass
{
    public SomeTypes SomeType { get; set; }

    bool validEnum() {
        return System.Enum.IsDefined(typeof(SomeTypes), this.SomeType);
    }
}
于 2013-10-30T16:42:04.193 回答
0

您可以在set访问器中执行此操作:

public class SomeClass
{
    private SomeTypes _SomeType;
    public SomeTypes SomeType { 
        get {return _SomeType;} 
        set {
            if(!Enum.IsDefined(typeof(SomeTypes),value)) 
                throw new ArgumentException(string.Format("{0} is not a valid SomeTypes value", value),"value");
            _SomeType = value;
        }
    }
}
于 2013-10-30T16:37:24.290 回答