特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签
在执行前调用
新建一个类,类名为 AttributeClass(你也可以自己想个)
继承 Attribute(必须继承 Attribute 类),代码如下:
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性类 必须继承 Attribute 类
{
//
}
}
为特性类添加个入口:
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性类 必须继承 Attribute 类
{
public AttributeClass()//类的入口
{
//在这里写代码
}
}
}
为特性类添加在哪里可以使用的说明:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]//特性类能在什么地方使用
//[AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor | AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = true)}
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性类 必须继承 Attribute 类
{
public AttributeClass()//类的入口
{
//在这里写代码
}
}
}
然后就可以在你需要执行特性类的类名或者方法(函数)上填写上 [AttributeClass](中括号要加上)
在执行前调用并返回相关值或者数据
基于上面的基础,加一个 Get,Set 方法
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]//特性类能在什么地方使用
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性类 必须继承 Attribute 类
{
public AttributeClass()//类的入口
{
//在这里写代码
}
public AttributeClass(int size)//类的入口
{
this.Size = size;
}
public int Size { get; set; } = 0;
}
}
然后就可以在你需要执行特性类的类名或者方法(函数)上填写上 [AttributeClass(size的值)](中括号要加上)
然后在执行的方法内部增加以下代码,把特性类的值取出来使用
Type type = typeof(特性类加在某个类或者函数的类名);
//Type type = typeof(this);//非静态类可以直接使用 this
foreach (AttributeClass attributeClass in attributeClasss)
{
Console.WriteLine("特性类传出的数据{0}", attributeClass.Size);
}
至此,你已经学会怎么使用了!(其它部分请参考网上的其它资料)
相关类似推荐:Java 注解类使用和说明
版权属于:zgcwkj
本文链接:https://zgcwkj.com/archives/110.html
转载声明:请注明本文章的标题及内容的出处和声明,谢谢
评论已关闭