All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
存储过程入门与提高_mssql学习_编程技术
GridViewRow可以任意位置单击引发事件的方法_[Asp.Net教程]
.NET开发不可不知、不可不用的辅助类(一)_[Asp.Net教程]
ASP.NET Remoting体系结构(四)
精通数据库系列之入门-基础篇1_mssql学习_编程技术
ASP.NET2.0数据库入门之SqlDataSource_[Asp.Net教程]
《Effective,C#》:值类型和引用类型_[Asp.Net教程]
SQL Server的空值处理策略_[SQL Server教程]
在Win2003,R2上安装SQL,Server,2005(一)_[SQL,Server教程]
开始了解,PHP,V5,中的对象_php资料_编程技术
Reading number is top 10 pictures
5 meters long centenarians python and melee was successfully capture king snake (figure)
Go to the national museum3
Terrorist smile the largest human history an explosion1
Chinese paper-cut grilles art appreciation2
传销的好处
A man's favorite things3--ZhouWeiTong
Absolutely shocked. National geographic 50 animal photographys1
So beauty, will let you spray blood8
Fat bird to fly
非常漂亮的泳装美女
Download software ranking
Tram sex maniac 2 (H) rar bag9
Prostitutes diary
Boxer's Top ten classic battle1
Tram sex maniac 2 (H) rar bag2
Unix video tutorial4
Sora aoi, the nurse, uniform ,nursing assistant
双旗镇刀客A
中国结婚习俗实录
asp.net技术内幕
在线棋牌游戏3.05版
aaa published in(发表于) 2013/12/13 9:40:41 Edit(编辑)
C#,Enum设计和使用的相关技巧_.net资料_编程技术

C#,Enum设计和使用的相关技巧_.net资料_编程技术

C# Enum设计和使用的相关技巧_.net资料_编程技术-你的首页-uuhomepage.com

Enum的运算通常涉及到位运算(AND、OR、XOR),按位运算, 常使用FlagsAttribute 自定义属性定义。FlagsAttribute 和 Enum 的准则:
只有要对数值执行按位运算(AND、OR、XOR)时才对枚举使用 FlagsAttribute 自定义属性。
用 2 的幂(即 1、2、4、8 等)定义枚举常量。这意味着组合的枚举常量中的各个标志都不重叠。
请考虑为常用标志组合创建一个枚举常量。例如,如果用于文件 I/O 操作的枚举包含枚举常量 Read = 1 和 Write = 2,请考虑创建枚举常量 ReadWrite = Read OR Write,该常量组合了 Read 和 Write 标志。此外,在某些情况下,可能会将用于组合标志的按位 OR 运算视为一种高级概念,在简单任务中不需要执行此操作。
将负数定义为标志枚举常量时应谨慎,因为很多标志位置都可能设置为 1,这可能使您的代码产生混淆并易于发生代码错误。
测试数值中是否已设置标志的一种简便方法为:在数值和标志枚举常量之间执行按位“与”操作,这种方法会将数值中与标志不对应的所有位都设置为零,然后测试该操作的结果是否等于该标志枚举常量。
将 None 用作值为零的标志枚举常量的名称。在按位 AND 运算中,不能使用 None 枚举常量测试标志,因为所得的结果始终为零。但是,您可以在数值与 None 枚举常量之间执行逻辑(不是按位)比较,以确定数值中是否已设置任何位。
如果创建的是值枚举而不是标志枚举,创建 None 枚举常量仍十分有用。原因是在默认情况下,公共语言运行库会将用于枚举的内存初始化为零。因此,如果不定义值为零的常量,则枚举在创建时将包含非法值。
如果明显存在应用程序需要表示的默认情况,请考虑使用值为零的枚举常量表示默认值。如果不存在默认情况,请考虑使用值为零的枚举常量(这意味着该情况不由任何其他枚举常量表示)。
不要仅为了反映枚举自身的状态而定义枚举值。例如,不要定义仅用于标记枚举末尾的枚举常量。如果需要确定枚举的最后一个值,请显式检查该值。此外,如果枚举常量范围中的所有值都有效,还可以对第一个和最后一个枚举常量执行范围检查。
不要指定保留供将来使用的枚举常量。
在定义采用枚举常量作为值的方法或属性时,应考虑对该值进行验证。原因是即使没有在枚举中定义某个数值,也可以将该数值强制转换为枚举类型。


技巧1:如何去除一个枚举项:


例如定义了权限Enum Permission:


[Flags]


public enum Permission{


Select = 1,


Edit = 2,


Delete = 4,


View = 8,


All = Select | Edit | Delete | View


}


可以采用这个函数进行计算:


public static Permission ClearFlag(Permission value, Permission flag)


{


value = value & (Permission.All^ flag);


return value;


}






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.