特性Attribute

反射获取特性类

  1. 获取要访问的类
  2. IsDefined()方法,System.Reflection反射命名空间下MemberInfo类下的方法IsDefined(typeof(特性类),bool),判断访问类是否有特性类,有的话true为进入
  3. GetCustomAttribute()方法,System.Reflection命名空间下CustomAttributeExtensions类下的方法  GetCustomAttribute(typeof(特性类名),bool),检查搜索特性类,如果有返回Attribute特性类
  4. GetCustomAttribute()方法相当于实例化对象,因为这一步触动了下图步骤,阅上可知,这是步调用了构造函数,(个人理解:根据访问类反向搜索修饰该类的特性类,然后触发实例)
  5. 注意的是,实例化对象是特性类

特性Attribute_第1张图片 个人理解:根据被修饰类,被修饰方法,被修饰属性,被修饰字段,被修饰参数,被修饰返回值,反向搜索特性类

  1. Type类下的方法GetProperty,获取指定名称公共属性,返回反射命名空间下的PropertyInfo属性类
  2. Type类下的方法GetMethod,获取指定名称公共方法,返回反射命名空间下的MethodInfo方法类
  3. GetParameters方法,反射命名空间下MethodBase类的方法,获取对应方法(构造函数也是特殊的方法)的参数,因为参数是方法的,所以由方法引用,返回反射命名空间下的ParameterInfo类
  4. ReturnParameter方法是反射命名空间下的MethodInfo类下的方法,获取对应方法的返回类型的信息,因为返回值是方法的,所以由方法引用,返回反射命名空间下的ParameterInfo类

特性Attribute_第2张图片

 特性类作用:补充信息 和 补充行为

特性作用案例,看特性练习代码

拓展:

拓展方法:

静态类里面静态方法的第一个参数前+this

特性Attribute_第3张图片 

今天就分享到这里,敬请关注后面

初来乍到,请多多指教,大神勿喷。若有错误之处,欢迎指导

你可能感兴趣的:(c#)