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

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
}

 

时间: 2024-09-28 17:41:32

C# 枚举类型转换字符串 Enum to string的相关文章

C# Enum,Int,String的互相转换

原文:C# Enum,Int,String的互相转换 [C# Enum,Int,String的互相转换] 1.Enum-->String (1)利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串: (2)利用Enum的静态方法GetName与GetNames: public static string GetName(Type enumType,Object value) public static string

在类中使用string类的问题。我定义的构造函数,想把字符串赋给string对象,却实现不了。

问题描述 在类中使用string类的问题.我定义的构造函数,想把字符串赋给string对象,却实现不了. //12.2.ano.h #ifndef STRING2_H_ #define STRING2_H_ #include #include using std::string; using std::cout; using std::cin; using std::endl; class String { private : string str; public : String(); Str

C/C++字符串处理之String

Table of Contents 概要 理解String(BasicString) 关于TempString基类 源码 参考阅 读 概要 我们知道,C++标准库(STL)提供了string(basic_string)类进行字符串操作.字符串很可能除了内存 分配器(allocator)1外使用最为频繁的STL类.但是C++社区对string的指责从来就没有停止过. 归纳起来,STL的 string类主要有以下这些争议点: 接口过多且规格和其他STL容器没有达成很好的一致性.例如,string::

字符串-关于C++ string 的问题

问题描述 关于C++ string 的问题 10C 实现C++ string中一个函数函数形式为replace(S1,i,jS2)S1是string对象,i表示从S1对象的i位置开始删除长度为j的字符串,并用S2替换这个字符串.能否给个思路? 解决方案 如果你要用数组的话,程序要满足一个条件,strlen(S2)=j-i;类似的程序,你可以参考写一下#include #include using namespace std; int main(){ string a;/////指定串,可根据要求

我为什么不能把从数据库读出来的字符串赋值给String的变量String str=rs.getString(&amp;amp;quot;name&amp;amp;quot;);

问题描述 我为什么不能把从数据库读出来的字符串赋值给String的变量Stringstr=rs.getString("name"):总是出错.但是能直接输出System.out.println(rs.getString("name"))急啊我在线等哪位帮我解决一下33XXXXXX! 解决方案 解决方案二:错误提示Exceptioninthread"main"java.sql.SQLException:afterendofresultset....

javascript正则表达式和字符串RegExp and String(一)_正则表达式

前言 正则表达式是javascript非常重要和常用的功能,在jquery等大型框架中用的非常频繁,最近抽时间学习了解了相关知识,记录下来与需要的朋友分享. 思维导图 RegExp(正则表达式)的创建方式 可以通过两种方式创建一个RegExp,具体如下: 通过/-./的方式来创建正则表达式(注意: /--/两边是没有单引号或双引号的) 通过RegExp构造方法来创建一正则表达式 为了更好的描述模式,正则表达式提供了3个标识,分别是: g/i/m g: 全局匹配:在整个字符串中匹配,而不是在第一次

javascript正则表达式和字符串RegExp and String(二)_正则表达式

在上篇文章给大家介绍了javascript正则表达式和字符串RegExp and String(一),本文给大家继续分享相关内容. 前言 我认为,在学习一门编程语言的过程中,字符串.数组.容器是非常重要的部分,为了提高编程效率,我通常会对字符串.数组以及容器作深入的学习,详细了解相关特点及对应的API.这篇文章是针对javascript字符串学习写下的笔记,在此与需要的朋友分享. 思维导图 字符串的创建方式 字符串是javascript中的基本类型之一,它对应的类型是String,可以通过两种方

javascript正则表达式和字符串RegExp and String(二)

在上篇文章给大家介绍了javascript正则表达式和字符串RegExp and String(一),本文给大家继续分享相关内容. 前言 我认为,在学习一门编程语言的过程中,字符串.数组.容器是非常重要的部分,为了提高编程效率,我通常会对字符串.数组以及容器作深入的学习,详细了解相关特点及对应的API.这篇文章是针对javascript字符串学习写下的笔记,在此与需要的朋友分享. 思维导图 字符串的创建方式 字符串是javascript中的基本类型之一,它对应的类型是String,可以通过两种方

javascript正则表达式和字符串RegExp and String(一)

前言 正则表达式是javascript非常重要和常用的功能,在jquery等大型框架中用的非常频繁,最近抽时间学习了解了相关知识,记录下来与需要的朋友分享. 思维导图 RegExp(正则表达式)的创建方式 可以通过两种方式创建一个RegExp,具体如下: 通过/-./的方式来创建正则表达式(注意: /--/两边是没有单引号或双引号的) 通过RegExp构造方法来创建一正则表达式 为了更好的描述模式,正则表达式提供了3个标识,分别是: g/i/m g: 全局匹配:在整个字符串中匹配,而不是在第一次