C# 未能在枚举上使用FlagsAttribute(无法解析符号';HasFlag';)

C# 未能在枚举上使用FlagsAttribute(无法解析符号';HasFlag';),c#,enums,bit-manipulation,flags,bitflags,C#,Enums,Bit Manipulation,Flags,Bitflags,我在c#中有一个asmxweb服务,最近发现了非常有用的FlagsAttribute。我的声明如下: [Flags] public enum eAdPriority { None = 0, Gold = 1, Silver = 2, Homepage = 4 } eAdPriority test = eAdPriority.Gold | eAdPriority.Homepage | eAdPriority.Silver; test.HasFlag(eAdPri

我在c#中有一个asmxweb服务,最近发现了非常有用的
FlagsAttribute
。我的声明如下:

[Flags] 
public enum eAdPriority
{
    None = 0,
    Gold = 1,
    Silver = 2,
    Homepage = 4
}
eAdPriority test = eAdPriority.Gold | eAdPriority.Homepage | eAdPriority.Silver;
test.HasFlag(eAdPriority.Gold);
然后,我按如下方式测试枚举:

[Flags] 
public enum eAdPriority
{
    None = 0,
    Gold = 1,
    Silver = 2,
    Homepage = 4
}
eAdPriority test = eAdPriority.Gold | eAdPriority.Homepage | eAdPriority.Silver;
test.HasFlag(eAdPriority.Gold);

但是,最后一行的
HasFlag
部分高亮显示为红色无法解析符号“HasFlag”,我的代码无法编译。想知道为什么吗?

Enum.HasFlag仅在.NET Framework 4.0或更高版本中可用。如果您使用的是.NETFramework3.5,那么可以包括来自的扩展方法,以模拟HasFlag功能。为了完整性起见,下面是代码(文章作者的功劳):


你确定你至少在使用.NET 4.0吗?什么是eClassifiedPriority?我尝试使用var val=test.hasvag(eAdPriority.Gold);实现,@拉杰:错别字,更正-谢谢。@Fratyx:-那是我的问题,什么n00b,抱歉浪费大家的时间!