站外
广告
域名申请虚拟主机 文字广告位招租 文字广告位招租 文字广告位招租 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 期货软件

C# 枚举类型转换字符串 Enum to string

发布时间:2011-01-18 10:47文章来源:网络文章作者:秩名 点击次数:
摘要:c# 枚举类型转换字符串 enum to string 枚举类型都是值类型。 system.enum是一个抽象类(abstract class),所有枚举类型都直接继承自它,当然也同时继承了它的所有成员。 所有的值类型都是system.valuetype的后代,枚举类型也不例外,枚举类型直接继承自sys...

c# 枚举类型转换字符串 enum to string

枚举类型都是值类型。

system.enum是一个抽象类(abstract class),所有枚举类型都直接继承自它,当然也同时继承了它的所有成员。

所有的值类型都是system.valuetype的后代,枚举类型也不例外,枚举类型直接继承自system.enum,而system.enum却又直接继承自system.valuetype的,所以,枚举类型也是 system.valuetype的后代。


值类型都是system.valuetype的后代,但system.valuetype的后代不全是值类型,system.enum就是唯一的特例!

 

在system.valuetype的所有后代中,除了system.enum之外其它都是值类型。

事实上,我们可以在.net的源代码中找到system.enum的声明:

 

public abstract class enum : valuetype, icomparable, iformattable, iconvertible

1. 所有枚举类型(enum type)都是值类型。
2. system.enum和system.valuetype本身是引用类型。
3. 枚举类型(enum type)都是隐式的直接继承自system.enum,并且这种继承关系只能由编译器自动展开。但system.enum本身不是枚举类型(enum type)。
4. system.enum是一个特例,它直接继承自system.valuetype,但本身却是一个引用类型。
5. 枚举类型可以被装箱成system.enum、system.valuetype、system.object或者system.iconvertible、system.iformattable、system.icomparable。

注意:在.net 1.1上,枚举类型只能被装箱到system.enum、system.valuetype、system.object;而在.net 2.0上,枚举类型还能被装箱到system.enum所实现的三个接口:system.iconvertible、 system.icomparable、system.iformattable。对应的装箱操作既可以为隐式的也可以是显式的


 

 enumtype

  {

    a=1,

    b=2,

    c=3

  }

 

enumtype newtype=(enumtype)enum.parse(typeof(enumtype),"a");

 

string[] names=emum.getnames(typeof(enumtype));

array values=enum.getvalues(typeof(enumtype));

for(int i=0;i<values.length-1;i++)

{

  dropdownlist.items.add(new listitem(names[i],values.getvalue(i)));

}

.net public enum timeofday
{
    morning = 0,
    afternoon = 1,
    evening
}

再看

public void enumtest()
{
    timeofday time = timeofday.afternoon;
    //将枚举字符串打印,即枚举类型转换(解析)成字符串类型
    console.writeline(time.tostring());//输出:afternoon

    //获取枚举字符串的值,即将一个表示枚举成员的字符串,解析为对应枚举类型
    timeofday time2 = (timeofday)enum.parse(typeof(timeofday), "evening", true);

    //枚举类型可以强制转换成整型,整型也可以强制转换成枚举型
    console.writeline((int)time2);//输出:2
    // 遍历所有的枚举元素            ;
    foreach (string s in enum.getnames(typeof(timeofday)))
    {
        console.writeline(s);
    }
    //输出: morning
    //       afternoon
    //       evening
}

 

标签分类: C#

上一篇:Mssql 2005 的 group_concat
下一篇:没有了