これを考えると:
public enum SomeTypes
{
SomeType1 = 1,
SomeType2 = 2,
SomeType3 = 3
}
そしてクラス:
public SomeClass
{
public SomeTypes SomeType { get; set; };
}
列挙型が範囲内にあるかどうかを確認する最良の方法は何ですか (つまり、0 ではありません)。私はそれがIsDefinedを含むと思いますか?
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);
}
}
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;
}
}
}