繁体   English   中英

C#Enum用于数据类型

[英]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或字符串。 这些都是非常不同的东西,只能导致向上倾斜。

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

看一下 :

在C#中重载属性

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

问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM