Car*_*ngo 22 c# reflection enums
使用反射,如何确定枚举是否具有Flags属性
所以对于MyColor返回true
[Flags]
public enum MyColor
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Run Code Online (Sandbox Code Playgroud)
并为MyTrade返回false
public enum MyTrade
{
Stock = 1,
Floor = 2,
Net = 4,
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 29
if (typeof(MyEnum).GetCustomAttributes(typeof(FlagsAttribute), false).Length > 0)
Run Code Online (Sandbox Code Playgroud)
cuo*_*gle 24
如果您使用的是.NET 4.5:
if (typeof(MyColor).GetCustomAttributes<FlagsAttribute>().Any())
{
}
Run Code Online (Sandbox Code Playgroud)
khe*_*ang 15
如果您只想检查属性是否存在,而不检查任何属性数据,则应使用MemberInfo.IsDefined.它返回一个bool指示"指定类型或其派生类型的一个或多个属性是否应用于此成员"而不是处理属性集合的情况.
typeof(MyColor).IsDefined(typeof(FlagsAttribute), inherit: false); // true
typeof(MyTrade).IsDefined(typeof(FlagsAttribute), inherit: false); // false
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是.NET 4.5+:
using System.Reflection;
typeof(MyColor).IsDefined<FlagsAttribute>(inherit: false); // true
typeof(MyTrade).IsDefined<FlagsAttribute>(inherit: false); // false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7496 次 |
| 最近记录: |