Enum枚举
+展开
-C#
///Enum枚举
///System.Enum类型派生自System.ValueType。其实更应该叫做System.Enum结构
///因为System.Enum是值类型,编译器在代码编译为IL代码时,会将System.Enum
///结构自动更改为对应的数值存储到程序集或模块中,所以说枚举和常量有很多
///地方很相象,因为枚举一旦定义了值就不会被更改。有一点要注意程序集与程
///序集之间用到枚举的时候要小心,一定要重新编译所有的程序集,这样才能将
///更改的程序集中的IL与其它程序集同步。下面的例子我列出了一些枚举常用到
///的方法。
///static string Format(Type type , object value , string format)静态方
///法,该方法接受一个与枚举格式有关的字符串:format 参数可以是"G"或"g"
///表示返回常数的名称(如 "Remault");也可以是"D"或"d"表示返回相应的值
///(如"10")
///下面一起看一下例子:
using System;
/// <summary>
/// 主程序
/// </summary>
class program
{
/// <summary>
/// 新建枚举对象
/// </summary>
enum Maker
{
Renault,
ford,
Toyota
}
/// <summary>
/// 入口Main方法
/// </summary>
static void Main()
{
/// <summary>
/// 获得一个枚举对象(Maker.Renault)
/// </summary>
Maker maker = Maker.Renault;
/// <summary>
/// 使用Enum.format()方法,得到枚举对象的字符串 方法中使用了参数"G"
/// </summary>
string s = System.Enum.Format(typeof(Maker), maker, "G");
/// <summary>
/// 输出刚刚得到的字符串
/// </summary>
Console.WriteLine(s);
///<summary>
/// 使用Enum.format()方法,得到枚举对象的数值,方法中使用了参数"D"
///</summary>
string s2 = System.Enum.Format(typeof(Maker), maker, "D");
/// <sumary>
/// 输出得到的数值
/// </summary>
Console.WriteLine(s2);
/// <summary>
/// Enum.Parse()方法,将字符串转换为枚举类型,false值参数表示方法
/// 解析时区分大小写(该方法返回的是Object类型,需要强制类型转换成
/// 枚举类型)
/// </summary>
Maker mm= (Maker)System.Enum.Parse(typeof(Maker), "ford", false);
/// <summary>
/// 输出得到的枚举
/// </summary>
Console.WriteLine(mm);
/// <summary>
/// Enum.Parse()方法,将字符串转换为枚举类型,true值参数表示方法解
/// 析时不区分大小写(该方法返回的是Object类型,需要强制类型转换成
/// 枚举类型)
/// </summary>
Maker mm2 = (Maker)System.Enum.Parse(typeof(Maker), "Ford", true);
/// <summary>
/// 输出得到的枚举
/// </summary>
Console.WriteLine(mm2);
/// <summary>
/// 分割线
/// </summary>
Console.WriteLine("____________________________________________");
/// <summary>
/// 使用foreach和枚举的Enum.GetNames()方法遍历枚举
/// </summary>
foreach (string ss in System.Enum.GetNames(typeof(Maker)))
{
/// <summary>
/// 输出枚举
/// </summary>
Console.WriteLine(ss);
}
}
}
///System.Enum类型派生自System.ValueType。其实更应该叫做System.Enum结构
///因为System.Enum是值类型,编译器在代码编译为IL代码时,会将System.Enum
///结构自动更改为对应的数值存储到程序集或模块中,所以说枚举和常量有很多
///地方很相象,因为枚举一旦定义了值就不会被更改。有一点要注意程序集与程
///序集之间用到枚举的时候要小心,一定要重新编译所有的程序集,这样才能将
///更改的程序集中的IL与其它程序集同步。下面的例子我列出了一些枚举常用到
///的方法。
///static string Format(Type type , object value , string format)静态方
///法,该方法接受一个与枚举格式有关的字符串:format 参数可以是"G"或"g"
///表示返回常数的名称(如 "Remault");也可以是"D"或"d"表示返回相应的值
///(如"10")
///下面一起看一下例子:
using System;
/// <summary>
/// 主程序
/// </summary>
class program
{
/// <summary>
/// 新建枚举对象
/// </summary>
enum Maker
{
Renault,
ford,
Toyota
}
/// <summary>
/// 入口Main方法
/// </summary>
static void Main()
{
/// <summary>
/// 获得一个枚举对象(Maker.Renault)
/// </summary>
Maker maker = Maker.Renault;
/// <summary>
/// 使用Enum.format()方法,得到枚举对象的字符串 方法中使用了参数"G"
/// </summary>
string s = System.Enum.Format(typeof(Maker), maker, "G");
/// <summary>
/// 输出刚刚得到的字符串
/// </summary>
Console.WriteLine(s);
///<summary>
/// 使用Enum.format()方法,得到枚举对象的数值,方法中使用了参数"D"
///</summary>
string s2 = System.Enum.Format(typeof(Maker), maker, "D");
/// <sumary>
/// 输出得到的数值
/// </summary>
Console.WriteLine(s2);
/// <summary>
/// Enum.Parse()方法,将字符串转换为枚举类型,false值参数表示方法
/// 解析时区分大小写(该方法返回的是Object类型,需要强制类型转换成
/// 枚举类型)
/// </summary>
Maker mm= (Maker)System.Enum.Parse(typeof(Maker), "ford", false);
/// <summary>
/// 输出得到的枚举
/// </summary>
Console.WriteLine(mm);
/// <summary>
/// Enum.Parse()方法,将字符串转换为枚举类型,true值参数表示方法解
/// 析时不区分大小写(该方法返回的是Object类型,需要强制类型转换成
/// 枚举类型)
/// </summary>
Maker mm2 = (Maker)System.Enum.Parse(typeof(Maker), "Ford", true);
/// <summary>
/// 输出得到的枚举
/// </summary>
Console.WriteLine(mm2);
/// <summary>
/// 分割线
/// </summary>
Console.WriteLine("____________________________________________");
/// <summary>
/// 使用foreach和枚举的Enum.GetNames()方法遍历枚举
/// </summary>
foreach (string ss in System.Enum.GetNames(typeof(Maker)))
{
/// <summary>
/// 输出枚举
/// </summary>
Console.WriteLine(ss);
}
}
}
来源:http://2sws.blog.163.com/blog/static/17910249200984345799/
加支付宝好友偷能量挖...