public object Value
{
get
{
return _value;
}
set
{
_value = value;
}
}
public enum someEnum
{
sString = 1,
sBoolean = 2,
sInt = 3,
sDate = 4
sData = 5 //Custom data type eg; a class
}
我希望我的属性值接受并仅返回someEnum枚举器中指定的数据类型。我正在使用vs2012
答案 0 :(得分:0)
你试过这个:
public someEnum Value
{
get; set;
}
答案 1 :(得分:0)
我尝试使用枚举,它可以工作,但我必须硬编码枚举值,如" System.String"并在set修饰符中使用了Enum.TryParse。
MyEnum type;
bool res = Enum.TryParse<MyEnum>(Convert.ToString(value.GetType()), out type);
恕我直言,使用扩展方法看起来更好
private object _value;
public object Value
{
get
{
return _value;
}
set
{
if (value.IsValidType())
_value = value;
else
throw new Exception("Not a valid type");
}
}
public static class ObjectExtenstions
{
public static bool IsValidType(this object obj)
{
if (obj.GetType() == typeof(System.String) || obj.GetType() == typeof(System.Int32))
return true;
return false;
}
}