zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/xuxujiang/p/6655765.html
Copyright © 2011-2022 走看看