• 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语句同样可以判断多个权限

  • 相关阅读:
    浏览器内核中各个线程之间的关系
    Browser进程和浏览器内核(Renderer进程)的通信过程
    babel 的一些记录
    mac nvm install
    小程序云开发补充
    JavaScript 导学推荐
    网页切片
    初探响应式Web设计
    WEB ICON 的探讨
    [转载]CSS 创作指南(Beta)(css规范)
  • 原文地址:https://www.cnblogs.com/zwei1121/p/12712172.html
Copyright © 2020-2023  润新知