2013-02-11 43 views
0
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迫使我的财产只接受某些种类的数据类型

+2

更好看在这之后 - 我可能会问:为什么需要这个? – 2013-02-11 19:11:27

+0

我需要我的属性来接受我们在枚举器中布局的特定类型的数据类型。 – user1970959 2013-02-11 19:14:26

+0

好 - 但看起来你可能正在朝着“不同的方向”前进。反正 - 你见过我建议的解决方案吗? – 2013-02-11 19:19:30

回答

0

我试过枚举,它的工作原理,但我不得不硬编码枚举值,如“System.String”和集改性剂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; 
    } 
} 
0

您是否尝试过这样的:

public someEnum Value 
{ 
get; set; 
} 
相关问题