有时我们需要将枚举定义为1,2,4,8.......的值,这样当传入一个3,那么就是表示1,2的组合,如果传入7,那就表示1,2,4的组合。要实现这种功能我们需要用到FlagsAttribute。具体用法如下:
1.定义Enum。
public
static
void
Print(FormType ft)
{
if((ft&FormType.Reimburse)==FormType.Reimburse)//与判断
{
Console.WriteLine("Reimburse");
}
if((ft&FormType.Payment)==FormType.Payment)
{
Console.WriteLine("Payment");
}
if((ft&FormType.Precharge)==FormType.Precharge)
{
Console.WriteLine("Precharge");
}
if((ft&FormType.PO)==FormType.PO)
{
Console.WriteLine("PO");
}
Console.WriteLine("End");
}
3.生成组合枚举:
Reimburse
1.定义Enum。
[Flags]
public enum FormType
{
Reimburse = 1 ,
Payment = 2 ,
Precharge = 4 ,
PO = 8
}
2.组合枚举值的判断:
public enum FormType
{
Reimburse = 1 ,
Payment = 2 ,
Precharge = 4 ,
PO = 8
}
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/265545929caf4d7cba0706839d27f76d.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/21c899837b3449818e05f10092b2b7a8.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/d1b1d207dabf4d858c230d60a782ce80.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/bdcc99e662794d6788436ed9e1aaf5fe.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/d1b1d207dabf4d858c230d60a782ce80.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/bdcc99e662794d6788436ed9e1aaf5fe.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/d1b1d207dabf4d858c230d60a782ce80.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/bdcc99e662794d6788436ed9e1aaf5fe.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/d1b1d207dabf4d858c230d60a782ce80.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/bdcc99e662794d6788436ed9e1aaf5fe.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/ad928c723cd24d4d826c7e71aed37798.gif)
![](https://ucc.alicdn.com/aholwdxzjwod6/developer-article353584/20241017/8004b9c228d1475598ccc436125ef326.gif)
3.生成组合枚举:
FormType ft
=
FormType.Reimburse
|
FormType.PO;
Print(ft);
运行输出的结果就是:
Print(ft);
Reimburse
PO
本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/archive/2007/10/15/924548.html,如需转载请自行联系原作者