=波波日志 > Asp.Net/C#/WCF > Enum枚举=
[转]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/
类别:Asp.Net/C#/WCF 作者:转载 日期:2010-12-07 【评论:0】
相关文章
暂时没有评论!
发表留言
热门博文
- IE里Cookie跨域不能读取
- web服务因URL意外地以/**结束,请求格式无法识别
- 去掉隐藏asp.net编译出错aspxerrorpath错误参数
- 解决asp.net验证视图状态 MAC 失败
- 找不到System.Web.Script.Services.ScriptService
- 在aspx,ashx页面挂起线程执行
最新博文
- WCF利用限流(Throttling)控制并发访问[下篇]
- WCF利用限流(Throttling)控制并发访问[上篇]
- ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[下篇]
- ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[上篇]
- WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
- C#如何设置标记方法等为否决的不可用
随机博文
- IP头和TCP头数据结构(C#版)
- ADO.Net的数据库连接池
- C#开发代码的小技巧
- C#中ParameterizedThreadStart和ThreadStart区别
- .NET 4.0 “Covariance”和“Contravariance”趣话
- WCF中的Session和Instancing Management
广告商赞助

