c#中是否有任何包含c#数据类型的枚举。这样我就可以在一个接受用户数据类型(int,string)的类中定义一个属性。
答案 0 :(得分:4)
系统中有TypeCode Enumeration。看起来它涵盖了所有基类型。
您可以使用Type.GetTypeCode()获取任何对象的TypeCode:
TypeCode typeCode = Type.GetTypeCode(anObject.GetType());
答案 1 :(得分:3)
您是否只想将枚举值与字符串相关联?您可能希望使用Description
属性。
public enum MyEnum
{
[Description("My first value.")]
FirstValue,
[Description("My second value.")]
SecondValue,
[Description("My third value.")]
ThirdValue
}
private string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attributes.Length > 0)
{
return attributes[0].Description;
}
else
{
return value.ToString();
}
}
定义映射的另一种可能性是使用Dictionary<int, string>
。
答案 2 :(得分:2)
Type-type有一个布尔属性“IsPrimitive”希望这可以帮到你。
答案 3 :(得分:1)
BCL中没有类似的东西。
为什么需要它?
答案 4 :(得分:1)
根据您的编辑声音,您需要generics,但我仍然质疑为什么属性可以接受为int或字符串。这些都是非常不同的东西,只能导致向上倾斜。
答案 5 :(得分:0)
答案 6 :(得分:-1)
不幸的是,框架没有这样的枚举,你必须手工创建(就像我们一样,因为我们有同样的需要)。
问候。