做天猫网站多少钱,wordpress菜单管理,郑州企业服务公司,wordpress exploit scanner在实际开发过程中#xff0c;我们常常会用到枚举类#xff0c;使用枚举的时候往往有着各种使用条件#xff0c;如何给枚举加入使用条件呢#xff1f;
答案就是我们的——自定义属性
废话不多说#xff0c;上代码
枚举类
首先我们要有一个枚举类
public enum XXXX枚举…在实际开发过程中我们常常会用到枚举类使用枚举的时候往往有着各种使用条件如何给枚举加入使用条件呢
答案就是我们的——自定义属性
废话不多说上代码
枚举类
首先我们要有一个枚举类
public enum XXXX枚举类名称
{// IsShow 是自定义属性[IsShow(true)]aa 1,[IsShow(false)]aa 2}
自定义属性 类
自定义属性 类有了这个类我们就可以在 枚举类上 使用我们的自定义属性
public class IsShowAttribute : Attribute
{public Boolean Data{get;set}//有参构造函数public IsShowAttribute(bool data){Data data}//无参构造函数public IsShowAttribute(){}}
使用方法
我们这里的 自定义属性是 “是否展示”我们使用方法来 取出枚举类型自己定义一个工具类在工具类中去加入下面的代码。
public static bool ToXXXX(this Enum value)
{if(valuenull){return 自己的逻辑如果你的value是空就返回true/false}FieldInfo fieldInfo value.GetType().GetField(value.ToString());if(fieldInfo null){return ture;}object [] attribArray fieldInfo.GetCustomAttributes(typeof(IsShowAttribute),false);if(attribArray.Length 0){return true;}else{return (attribArray[0] as IsShowAttribute).Data;}} 结果
if(工具类.ToXXXX(枚举类(枚举值)))
{自己的逻辑
}
结果就是 aa 1 展示而bb 2 不展示
FieldInfo FieldInfo 是 .NET 框架中的一个类用于描述字段的信息。它是反射Reflection的一部分允许你在运行时获取关于字段的元数据例如字段名称、类型、修饰符等并对字段进行操作例如获取或设置字段的值 FieldInfo 的常用属性和方法
常用属性
Attributes获取字段的属性。FieldHandle获取字段的句柄。FieldType获取字段的类型。IsAssembly指示字段是否具有 Assembly 可见性。IsFamily指示字段是否具有 Family 可见性。IsFamilyAndAssembly指示字段是否具有 FamilyAndAssembly 可见性。IsFamilyOrAssembly指示字段是否具有 FamilyOrAssembly 可见性。IsInitOnly指示字段是否为只读。IsLiteral指示字段是否具有常量值。IsPrivate指示字段是否为私有。IsPublic指示字段是否为公共。IsSpecialName指示字段是否具有特殊名称。MemberType获取此成员的类型。Name获取此字段的名称。ReflectedType获取声明该字段的类。
常用方法
GetValue(object obj)返回字段的值。SetValue(object obj, object value)设置字段的值。SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture)设置字段的值使用指定的绑定约束。GetCustomAttributes(bool inherit)返回一个数组该数组包含应用于此字段的所有自定义属性。GetCustomAttributes(Type attributeType, bool inherit)返回一个数组该数组包含应用于此字段的指定类型的自定义属性。IsDefined(Type attributeType, bool inherit)指示是否有任何自定义属性应用于此字段。