• C#枚举中使用Flags特性


    如果对一个值可以包含多个,那么可以使用枚举,加上Flags

    本文告诉大家如何写一个 Flags。

    <!--more-->

    在写前,需要知道一些基础知识,取反、或、与,如果不知道的话,请去看看基础。

    当然,这些太复杂了,我也不会在这里解释。

    假如有类型

        [Flags]
        public enum Show
        {
            A = 0x00000001,
            B = 0x00000010,
            C = 0x00000100,
            D = 0x00001000,
        }

    合并多个值

    合并多个,使用 |

      Show show=Show.A | Show.B

    判断是否存在某个值

    一个简单方法是用 HasFlag,但是一个方法是用 &

      Show show=Show.A | Show.B;
      show.HasFlag(Show.A);
      //其他
      bool 包含=(show & Show.A)!=0;

    去掉一个值

      Show show=Show.A | Show.B;
      show=show & (~Show.A);

    取反一个值

      Show show=Show.A | Show.B;
      bool 包含=(show & Show.A)!=0;
      if(包含)
      {
         show=show & (~Show.A);
      }
      else
      {
         show=show | Show.A;
      }

    参见:http://www.cnblogs.com/jhxk/articles/1738831.html

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    <script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split(' ').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
  • 相关阅读:
    eclipse 提交代码至自己的github上
    今天是国庆
    我要完蛋了!!!
    C/C++知识点
    [c++]const增强
    [c++]指针作为函数参数传递的问题
    day3_JavaScript
    day2_HTML&CSS
    2017年度总结
    小游戏
  • 原文地址:https://www.cnblogs.com/lindexi/p/6949671.html
Copyright © 2020-2023  润新知