-1

これを考えると:

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

そしてクラス:

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

列挙型が範囲内にあるかどうかを確認する最良の方法は何ですか (つまり、0 ではありません)。私はそれが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 に答える