本文整理汇总了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);
}
}
输出:
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();
}
}
输出:
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