C#Enum用于数据类型

时间:2010-11-17 11:57:21

标签: c# enums

c#中是否有任何包含c#数据类型的枚举。这样我就可以在一个接受用户数据类型(int,string)的类中定义一个属性。

7 个答案:

答案 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)

你为什么需要那个?该属性已经过滤了它可以接受的数据类型。

看看:

Overloading properties in C#

答案 6 :(得分:-1)

不幸的是,框架没有这样的枚举,你必须手工创建(就像我们一样,因为我们有同样的需要)。

问候。