当前位置: 首页 > news >正文

北京档案馆网站建设互联网现在的发展趋势

北京档案馆网站建设,互联网现在的发展趋势,物联网开发平台,手机网站设计与实现毕业设计一、目的:分享Enum中FlagsAttribute特性的用法 在C#中,Enum(枚举)类型可以使用[Flags]属性来表示一个枚举可以存储多个值。这是通过按位运算符(如|(或)和&(与)&#…

一、目的:分享Enum中FlagsAttribute特性的用法

        在C#中,Enum(枚举)类型可以使用[Flags]属性来表示一个枚举可以存储多个值。这是通过按位运算符(如|(或)和&(与))来实现的。使用[Flags]属性的枚举通常用于表示一组开关或状态的组合。

        在C#中使用[Flags]属性定义枚举时,遵循一些规则和最佳实践可以帮助确保你的枚举正确地表示复合值。这些规则包括:
1.    使用二进制位表示值:每个枚举值应该是2的幂(即,1, 2, 4, 8, 16等),这样可以通过按位运算(如按位与&、按位或|)组合和解析这些值。
2.    为组合值提供命名常量:如果你的枚举中有常用的值组合,可以为这些组合提供命名常量,以提高代码的可读性。
3.    包括一个表示“无”状态的值:通常,值为0的枚举成员用于表示“无”或“空”状态,这是一个好习惯。
4.    使用[Flags]属性:在枚举定义之前添加[Flags]属性,以明确表示该枚举用于位字段(即,可以存储多个值的枚举)。
5.    为枚举类型选择合适的底层类型:默认情况下,枚举的底层类型是int。如果你的枚举不需要int那么大的范围,可以选择一个更小的底层类型(如byte)来节省空间。


二、实现

如何定义

[Flags]
public enum FileAccess
{None = 0,    // 表示无权限Read = 1,    // 2^0, 单个权限Write = 2,   // 2^1, 单个权限Execute = 4, // 2^2, 单个权限ReadWrite = Read | Write, // 组合权限All = Read | Write | Execute // 所有权限
}

        FileAccess枚举使用[Flags]属性,表示可以组合多个值。ReadWrite和All是使用按位或运算符组合其他值的示例。FileAccess枚举使用[Flags]属性,表示可以组合多个值。ReadWrite和All是使用按位或运算符组合其他值的示例。

注意定义

如何使用

        FileAccess access = FileAccess.Read | FileAccess.Write;Console.WriteLine(access); // 输出: Read, WriteConsole.WriteLine(access.HasFlag(FileAccess.Read)); // 输出: TrueConsole.WriteLine(access.HasFlag(FileAccess.Execute)); // 输出: False

使用HasFlag方法检查特定的标志是否被设置

如何移除枚举标志中的特定值

        FileAccess access = FileAccess.ReadWrite | FileAccess.Execute;Console.WriteLine("Original access: " + access); // 输出: Read, Write, Execute// 移除Write权限access &= ~FileAccess.Write;Console.WriteLine("After removing Write: " + access); // 输出: Read, Execute

        access最初被设置为ReadWrite | Execute,这意味着它包含Read、Write和Execute权限。然后,使用access &= ~FileAccess.Write;语句移除Write权限。这里,~FileAccess.Write计算出Write的按位取反值,然后&=操作确保只有Write以外的其他权限保留在access中 

如何检查枚举标志是否同时包含多个特定值 

FileAccess access = FileAccess.ReadWrite | FileAccess.Execute;// 检查是否同时具有Read和Write权限bool hasReadAndWrite = (access & FileAccess.ReadWrite) == FileAccess.ReadWrite;Console.WriteLine("Has Read and Write: " + hasReadAndWrite); // 输出: True// 检查是否同时具有Read和Execute权限bool hasReadAndExecute = (access & (FileAccess.Read | FileAccess.Execute)) == (FileAccess.Read | FileAccess.Execute);Console.WriteLine("Has Read and Execute: " + hasReadAndExecute); // 输出: True// 检查是否同时具有Write和Execute权限bool hasWriteAndExecute = (access & (FileAccess.Write | FileAccess.Execute)) == (FileAccess.Write | FileAccess.Execute);Console.WriteLine("Has Write and Execute: " + hasWriteAndExecute); // 输出: True

五、需要了解的知识点

System.FlagsAttribute 类 - .NET | Microsoft Learn

Enum.HasFlag(Enum) 方法 (System) | Microsoft Learn

位运算符和移位运算符 - 对整数类型中的单个位执行布尔(AND、NOT、OR、XOR)和移位运算 - C# reference | Microsoft Learn

System.Enum 类 - .NET | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

六、源码地址

GitHub - HeBianGu/WPF-ControlDemo: 示例

GitHub - HeBianGu/WPF-ControlBase: Wpf封装的自定义控件资源库

GitHub - HeBianGu/WPF-Control: WPF轻量控件和皮肤库

七、了解更多

System.Windows.Controls 命名空间 | Microsoft Learn

https://github.com/HeBianGu

HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频

http://www.yayakq.cn/news/857773/

相关文章:

  • 做T恤卖网站衡阳的网站建设
  • 全国建设项目竣工验收公示网站泉州网红
  • 政务网站建设标准dnf网站上怎么做商人
  • 建设网站过水wordpress添加文章总数标签总数
  • 做网站原型的简单工具多少钱才算有钱人
  • 获取网站访客信息百度收录自适应网站
  • 中小企业网站提供了什么宁波网站推广人
  • 主流网站开发工具深圳英文网站推广
  • 番禺市桥做网站公司wordpress 锚点定位
  • 建设银行电脑版官方网站手机网站返回跳转页面
  • 河南省和城乡建设厅网站首页云阳网站建设
  • 自己开发网站要多少钱前端开发工程师招聘信息
  • 网站收录减少wordpress仪表盘密码
  • 漕泾网站建设jsp网站开发难吗
  • 网站移动端和手机端分开做中国机械加工网哪家好
  • 网站设计公司 龙岗软文推广代理平台
  • 建设银行网站图片网络策划书范文
  • 黄骅贴吧桃花路关键词优化公司哪家效果好
  • 网站建设创意广告网红推广
  • 献县制作网站提供零基础网站建设教学
  • 网站建设用户分析网站结构图
  • 网站系统发生错误北京正邦品牌设计公司
  • 学院门户网站建设东莞市seo网络推广品牌
  • 网站开发项目发展现状推广策略论文
  • tp5做企业网站中国建设银行官网下载
  • 南宁网站推广北京电商网站建设
  • 如何上国外购物网站行业信息网站有哪些
  • 网站建设需要软件h5模板网站有哪些
  • 网站建设的设备做任务的网站有哪些
  • 国外炫网站怎么做商业服务网站