在C#中是否有一个包含C#数据类型的枚举类型?这样我就可以在类中定义一个属性,接受用户传递的数据类型(如int、string)。
在System中有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>
。
有一个名为 "IsPrimitive" 的布尔属性属于类型 "Type",希望这能帮到你。
在BCL中没有类似的东西。
你为什么需要它?
System.TypeCode
枚举用于基本类型。 - Olivier Jacot-Descombes