當前位置: 首頁>>代碼示例>>C#>>正文


C# FlagsAttribute構造函數代碼示例

本文整理匯總了C#中System.FlagsAttribute.FlagsAttribute構造函數的典型用法代碼示例。如果您正苦於以下問題:C# FlagsAttribute構造函數的具體用法?C# FlagsAttribute怎麽用?C# FlagsAttribute使用的例子?那麽, 這裏精選的構造函數代碼示例或許可以為您提供幫助。您也可以進一步了解該構造函數所在System.FlagsAttribute的用法示例。


在下文中一共展示了FlagsAttribute構造函數的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: 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

示例2: 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


注:本文中的System.FlagsAttribute.FlagsAttribute構造函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。