• c# 权限二进制操作


       /// <summary>
        /// 位运算,二进制
        /// </summary>
        [Flags]
        public enum PermissionEnum
        {
            /// <summary>
            /// 初始化
            /// 0000
            /// </summary>
            Init = 0,
            /// <summary>
            /// 插入
            /// 0001
            /// </summary>
            Insert = 1,
            /// <summary>
            /// 删除
            /// 0010
            /// </summary>
            Delete = 2,
            /// <summary>
            /// 更新
            /// 0100
            /// </summary>
            Update = 4,
            /// <summary>
            /// 查询
            /// 1000
            /// </summary>
            Query = 8
        }
    View Code
        class Program
        {
    
            static void Main(string[] args)
            {
                //初始化一个新增权限
                var demo = InsertPermission(PermissionEnum.Insert);
                Console.WriteLine(demo);
                //再增加一个查询权限
                demo = InsertPermission(PermissionEnum.Query, demo);
                Console.WriteLine(demo);
                //再增加一个删除权限
                demo = InsertPermission(PermissionEnum.Delete, demo);
                Console.WriteLine(demo);
                //删除一个新增权限
                demo = DeletePermission(PermissionEnum.Insert, demo);
                Console.WriteLine(demo);
                //判断是否拥有新增权限
                Console.WriteLine(GetPermission(PermissionEnum.Insert, demo));
                //判断是否拥有查询权限
                Console.WriteLine(GetPermission(PermissionEnum.Query, demo));
                Console.Read();
            }
    
            /// <summary>
            /// 增加权限
            /// </summary>
            /// <param name="perType">需要增加什么权限(增删改查)</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static int InsertPermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //或运算  真假 为真;
                return userPer | (int)perType;
            }
            /// <summary>
            /// 删除权限
            /// </summary>
            /// <param name="perType">需要删除什么权限(增删改查)</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static int DeletePermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //~补位,~000010 = 111101
                //&与,真真为真,真假为假
                return userPer & ~(int)perType;
            }
    
            /// <summary>
            /// 判断是否拥有权限
            /// </summary>
            /// <param name="perType">判断是否拥有的权限类型</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static bool GetPermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //&与,真真为真,真假为假
                //判断出来的数不等于零,那就是拥有该权限
                return (userPer & (int)perType) != 0;
            }
    View Code
  • 相关阅读:
    [转载]android开发手册
    [转载]windows phone7 学习笔记10——生命周期/墓碑化
    [转载]Windows Phone 系列 本地数据存储
    【转载】windows phone7 学习笔记12——推送通知服务
    【转载】windows phone7 学习笔记15——Bing Maps
    [转载]WP7交互特性浅析及APP设计探究
    【】windows phone7 学习笔记11——启动器与选择器
    [转载]支持的 Windows Phone 媒体编解码器
    【转载】wp7屏幕截图代码
    【转载】windows phone7 学习笔记14——地理位置服务与反应性扩展框架
  • 原文地址:https://www.cnblogs.com/xuxujiang/p/6655765.html
Copyright © 2020-2023  润新知