在C#中[Flags]枚举属性是什么意思?

枚举标志用于获取枚举变量并允许其保存多个值。每当枚举表示标志集合而不是单个值时都应使用它

仅当要对数字值执行按位运算(AND,OR,EXCLUSIVE OR)时,才将FlagsAttribute用于枚举。

以2的幂定义枚举常数,即1、2、4、8等。这意味着组合枚举常量中的各个标志不会重叠。

示例

class Program {

   [Flags]

   enum SocialMediaFlags { None = 0, Facebook = 1, Twitter = 2, LinkedIn = 4, Instagram = 8, Snapchat = 16, Pinterest = 32, Reddit = 64 }

   static void Main() {

      var SocialMedia1 = SocialMediaFlags.Facebook | SocialMediaFlags.Twitter |

SocialMediaFlags.Instagram;

      var SocialMedia2 = SocialMediaFlags.LinkedIn;

      var SocialMedia3 = SocialMediaFlags.Pinterest | SocialMediaFlags.Reddit;

      SocialMediaFlags[] SocialMediasFlags = { SocialMedia1, SocialMedia2, SocialMedia3 };

      for (int ctr = 0; ctr < SocialMediasFlags.Length; ctr++)

      if ((SocialMediasFlags[ctr] & SocialMediaFlags.Facebook) == SocialMediaFlags.Facebook) {

         Console.WriteLine("SocialMedia {0} has Facebook service: {1}", ctr + 1, "Yes");

      }

      Console.WriteLine();

   }

}

输出结果

SocialMedia 1 has Facebook service: Yes

以上是 在C#中[Flags]枚举属性是什么意思? 的全部内容, 来源链接: utcz.com/z/326658.html

回到顶部