[英]C# Enum for datatypes
c#中是否有任何包含c#数据类型的枚举。 这样我就可以在一个接受用户数据类型(int,string)的类中定义一个属性。
系统中有TypeCode枚举 。 看起来它涵盖了所有基本类型。
您可以使用Type.GetTypeCode()获取任何对象的TypeCode:
TypeCode typeCode = Type.GetTypeCode(anObject.GetType());
您只是想将枚举值与字符串相关联吗? 您可能希望使用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>
。
Type-type有一个布尔属性“IsPrimitive”希望这可以帮到你。
在BCL中没有类似的东西。
你为什么需要它?
基于你的编辑声音,你需要泛型,但我仍然质疑为什么一个属性可以接受为int或字符串。 这些都是非常不同的东西,只能导致向上倾斜。
不幸的是,框架没有这样的枚举,你必须手工创建它(就像我们做的那样,因为我们有同样的需要)。
问候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.