[《.net框架程序设计》]第十三章 枚举类型与位标记

原创 2004年07月12日 11:25:00

第十三章 枚举类型与位标记<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一、             枚举类型

1、  使用枚举类型的理由:

l         枚举类型是得程序更容易编写、阅读、维护,在代码中使用符号名称代替数字是程序设计的一贯主张。

l         强类型的,便于类型检验

2、  注意事项:

l         枚举类型继承自System.EnumSystem.Enum又继承自System.ValurType

l         枚举类型不能定义方法、属性、事件

l         枚举类型为常数而非只读字段,因此可能引入版本问题(见第八章的相关讨论)

l         将枚举类型与引用它的类型定义在同一层次上,可减少代码录入的工作量

      

3、  System.Enum中方法的应用:

l         

l         

l         

l         

l         

l         

l         

l         

二、             位标记

l         使用System.FlagsAttributes定制特性,使得ToStringFormat方法可以查找枚举数值中的每个匹配符号,将它们连接为一个字符串,并用逗号分开;Parse方法可用该特性拆分字符串并得到复合的枚举类型

l         使用格式字符串Ff 也有同样的效果

下面的示例说明上述情况

using System;

 

[Flags]           //定制特性

public enum Human : byte     //定制基本类型

{

       Male = 0x01,

       Female = 0x10

}

 

public class EnumTest

{

       public static void <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Main()

       {

              Human human = Human.Male | Human.Female;   //人妖?

             

              Console.WriteLine(human.ToString());         //使用Flags定制特性的情况

              //Console.WriteLine(human.ToString("F"));  //没有使用Flags定制特性的情况

             

              Console.WriteLine(Enum.Format(typeof(Human), human, "G"));//使用Flags定制特性的情况

              //Console.WriteLine(Enum.Format(typeof(Human), human, "F"));//没有使用Flags定制特性的情况

             

              human = (Human)Enum.Parse(typeof(Human), "17");

              Console.WriteLine(human.ToString());  //使用Flags定制特性的情况

              //Console.WriteLine(human.ToString("F"));  //没有使用Flags定制特性的情况

       }

}

 

/*运行结果

Male, Female

Male, Female

Male, Female

*/

       注:上述程序中的注释为不使用Flags特性时的语法

《.NET框架程序设计》第十三章 枚举类型与位标记

第十三章 枚举类型和位标记 一、枚举类型1、  使用枚举类型的理由:l         枚举类型是得程序更容易编写、阅读、维护,在代码中使用符号名称代替数字是程序设计的一贯主张。l         强...
  • Ninth
  • Ninth
  • 2004年08月29日 12:24
  • 1808

第十三章 枚举类型与位标记[《.net框架程序设计》读书

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 08:49
  • 70

.NET框架程序设计——体系结构

谈到.NET,相信对于大多数初学者而言,都会感觉比较乱、比较迷茫,什么ASP.NET、VB.NET、VC.NET、ADO.NET、.NETFramework 等等概念,搞的我们晕头转向的,他们之间到底...
  • dongyue786
  • dongyue786
  • 2014年10月15日 15:47
  • 1980

终于把Microsoft .NET框架程序设计(修订版)看完了

这本书是由windows & .Net专家Jeffrey Richter写的,现在最新的是第二版CLR Via C#。虽然内容差不了多少,不过俺还是买了。:D。此书由李建忠老师翻译的。   Jeff...
  • kisserLeon
  • kisserLeon
  • 2006年11月28日 19:09
  • 1860

第12章 枚举类型与位标记-----《Microsoft.NET框架程序设计》

13.2 位标记   开发人员通常要用到位标记(bit flag)集合.当我们调用System.IO.File类型的GetAttributes方法时,它会返回一个FileAttribute类型的实例....
  • orichisonic
  • orichisonic
  • 2007年07月18日 21:40
  • 738

《Erlang 程序设计》练习答案 -- 第十三章 并发程序中的错误

% (1).编写一个 my_spawn(Mod, Func, Args) 函数。它的行为类似 spawn(Mod, Func, Args), % 但有一点区别。如果分裂出的进程挂了,就应打印出一个消息...
  • wwh578867817
  • wwh578867817
  • 2015年11月18日 00:59
  • 649

.net框架程序设计读书笔记二(Microsoft .net 框架开发平台体系架构)

第一章:Microsoft .net 框架开发平台体系架构    本章的目标:对.net框架体系架构有一个总体的认识,并对.net框架中出现的一些新的技术和术语有一个基本的了解。 1.1 将源代码编译...
  • cwbboy
  • cwbboy
  • 2004年05月31日 16:57
  • 988

java 语言程序设计 第十三章 13.5

程序小白,希望和大家多交流,共同学习 (只是将13.1的内容加以修改,具体的就是 implements Comparable; 然后我又在Rectangle类中重写了toString()方...
  • cheng_cuo_tuo
  • cheng_cuo_tuo
  • 2017年11月13日 12:21
  • 166

CH13 枚举类型与位标记 .net 复习课

 13.1 枚举类型- 枚举类型是强类型- 枚举类型继承自System.Enum,System.Enum又继承自System.ValueType最后继承自System.Object。枚举类型属于值类型...
  • alexjames_83
  • alexjames_83
  • 2009年02月17日 18:30
  • 426

J2EE与.NET技术架构的比较

一、J2EE简介 J2EE体系结构图:                          1.组件-容器模型 J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务...
  • kanglix1an
  • kanglix1an
  • 2014年06月04日 19:36
  • 8262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[《.net框架程序设计》]第十三章 枚举类型与位标记
举报原因:
原因补充:

(最多只允许输入30个字)