首页 / C# / c# – 最佳标志值(提示与良好实践)
c# – 最佳标志值(提示与良好实践)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 最佳标志值(提示与良好实践),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含851字,纯文字阅读大概需要2分钟。
内容图文
在学习旗帜技术的同时,我遇到了一些问题,因此我在使用C#和Enum展示这个例子:
[Flags]
enum PermissionTypes : byte
{
None = 0x0,
Read = 0x1,
Write = 0x2,
Modify = 0x4,
Delete = 0x8,
Create = 0x10,
All = Read | Write | Modify | Delete | Create
}
要检查hasFlag属性:
if((value & mask) == mask) {...}
但是当’hasFlag’应用于’None’和’Read’时:
Denote x = Current_Permission_Setting,
x & PermissionTypes.None = always false
x & PermissionTypes.Read = always true IFF
(续)IFF x = {ODD字节值}
问题:可以安全使用的完美标志值是什么?
解决方法:
正如@antlersoft在评论中所说,你不能真正使用NONE作为比特标志.
其余的旗帜是有道理的.您需要使用2的幂来获得每个标志1位.
无论如何,测试“Has READ and NONE”设置是没有意义的,因为NONE意味着没有设置READ.
你用奇数值X描述的问题似乎没有意义.如果设置了位1,则该值仅为奇数.如果您始终使用标志,则只有READ为真时才会设置位1.
内容总结
以上是互联网集市为您收集整理的c# – 最佳标志值(提示与良好实践)全部内容,希望文章能够帮你解决c# – 最佳标志值(提示与良好实践)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。