zoukankan      html  css  js  c++  java
  • C#枚举中使用Flags特性

    这种用处很大,比如权限、执行状态等,都可以用一个int型保存到数据库中,C#中使用枚举可以处理这个问题。

        [Flags]
        public enum Permission
        {
            create = 1,
            read = 2,
            update = 4,
            delete = 8,        
        }

    C#对该类型的操作如下:

                Permission permission = Permission.create | Permission.read | Permission.update | Permission.delete;
                Console.WriteLine("1、枚举创建,并赋值……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);
    
                permission = (Permission)Enum.Parse(typeof(Permission), "5");
                Console.WriteLine("2、通过数字字符串转换……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);
    
                permission = (Permission)Enum.Parse(typeof(Permission), "update, delete, read", true);
                Console.WriteLine("3、通过枚举名称字符串转换……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);
    
                permission = (Permission)7;
                Console.WriteLine("4、直接用数字强制转换……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);
    
                permission = permission & ~Permission.read;
                Console.WriteLine("5、去掉一个枚举项……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);
    
                permission = permission|Permission.delete;
                Console.WriteLine("6、加上一个枚举项……");
                Console.WriteLine(permission.ToString());
                Console.WriteLine((int)permission);

    在数据库中判断:

    AND (@permission IS NULL OR @permission=0 OR permission &@permission =@permission)

    上面的sql语句同样可以判断多个权限

  • 相关阅读:
    控制台日志输入到文件指定文件中
    flutter环境搭建坑一
    hybridapp/webapp的前端UI框架推荐
    hybrid app、web app与native app工具
    浏览记录
    HTML5跨平台APP越来越火,工具也越来越多。我推荐一个开发平台(一款工具)----DCloud
    学个p-nan isnan . isna isnull
    学个p-np.triu(m, k),np.tirl()
    实验五 plsql基础
    实验四-数据插入、更新、删除
  • 原文地址:https://www.cnblogs.com/zwei1121/p/12712172.html
Copyright © 2011-2022 走看看