当前位置: 首页>>代码示例>>C#>>正文


C# FlagsAttribute类代码示例

本文整理汇总了C#中System.FlagsAttribute的典型用法代码示例。如果您正苦于以下问题:C# FlagsAttribute类的具体用法?C# FlagsAttribute怎么用?C# FlagsAttribute使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


FlagsAttribute类属于System命名空间,在下文中一共展示了FlagsAttribute类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

//引入命名空间
using System;

class Example
{
   // Define an Enum without FlagsAttribute.
   enum SingleHue : short
   {
      None = 0,
      Black = 1,
      Red = 2,
      Green = 4,
      Blue = 8
   };

   // Define an Enum with FlagsAttribute.
   [Flags] 
   enum MultiHue : short
   {
      None = 0,
      Black = 1,
      Red = 2,
      Green = 4,
      Blue = 8
   };

   static void Main( )
   {
      // Display all possible combinations of values.
      Console.WriteLine( 
           "All possible combinations of values without FlagsAttribute:");
      for(int val = 0; val <= 16; val++ )
         Console.WriteLine( "{0,3} - {1:G}", val, (SingleHue)val);

      // Display all combinations of values, and invalid values.
      Console.WriteLine( 
           "\nAll possible combinations of values with FlagsAttribute:");
      for( int val = 0; val <= 16; val++ )
         Console.WriteLine( "{0,3} - {1:G}", val, (MultiHue)val);
   } 
}
开发者ID:.NET开发者,项目名称:System,代码行数:41,代码来源:FlagsAttribute

输出:

All possible combinations of values without FlagsAttribute:
0 - None
1 - Black
2 - Red
3 - 3
4 - Green
5 - 5
6 - 6
7 - 7
8 - Blue
9 - 9
10 - 10
11 - 11
12 - 12
13 - 13
14 - 14
15 - 15
16 - 16

All possible combinations of values with FlagsAttribute:
0 - None
1 - Black
2 - Red
3 - Black, Red
4 - Green
5 - Black, Green
6 - Red, Green
7 - Black, Red, Green
8 - Blue
9 - Black, Blue
10 - Red, Blue
11 - Black, Red, Blue
12 - Green, Blue
13 - Black, Green, Blue
14 - Red, Green, Blue
15 - Black, Red, Green, Blue
16 - 16

示例2: Main

//引入命名空间
using System;

[Flags]
public enum PhoneService
{
   None = 0,
   LandLine = 1,
   Cell = 2,
   Fax = 4,
   Internet = 8,
   Other = 16
}

public class Example
{
   public static void Main()
   {
      // Define three variables representing the types of phone service
      // in three households.
      var household1 = PhoneService.LandLine | PhoneService.Cell |
                       PhoneService.Internet;
      var household2 = PhoneService.None;
      var household3 = PhoneService.Cell | PhoneService.Internet;

      // Store the variables in an array for ease of access.
      PhoneService[] households = { household1, household2, household3 };

      // Which households have no service?
      for (int ctr = 0; ctr < households.Length; ctr++)
         Console.WriteLine("Household {0} has phone service: {1}",
                           ctr + 1,
                           households[ctr] == PhoneService.None ?
                               "No" : "Yes");
      Console.WriteLine();

      // Which households have cell phone service?
      for (int ctr = 0; ctr < households.Length; ctr++)
         Console.WriteLine("Household {0} has cell phone service: {1}",
                           ctr + 1,
                           (households[ctr] & PhoneService.Cell) == PhoneService.Cell ?
                              "Yes" : "No");
      Console.WriteLine();

      // Which households have cell phones and land lines?
      var cellAndLand = PhoneService.Cell | PhoneService.LandLine;
      for (int ctr = 0; ctr < households.Length; ctr++)
         Console.WriteLine("Household {0} has cell and land line service: {1}",
                           ctr + 1,
                           (households[ctr] & cellAndLand) == cellAndLand ?
                              "Yes" : "No");
      Console.WriteLine();

      // List all types of service of each household?//
      for (int ctr = 0; ctr < households.Length; ctr++)
         Console.WriteLine("Household {0} has: {1:G}",
                           ctr + 1, households[ctr]);
      Console.WriteLine();
   }
}
开发者ID:.NET开发者,项目名称:System,代码行数:60,代码来源:FlagsAttribute

输出:

Household 1 has phone service: Yes
Household 2 has phone service: No
Household 3 has phone service: Yes

Household 1 has cell phone service: Yes
Household 2 has cell phone service: No
Household 3 has cell phone service: Yes

Household 1 has cell and land line service: Yes
Household 2 has cell and land line service: No
Household 3 has cell and land line service: No

Household 1 has: LandLine, Cell, Internet
Household 2 has: None
Household 3 has: Cell, Internet


注:本文中的System.FlagsAttribute类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。