您的位置:首页 > 其它

AttributeTargets 枚举

2015-11-25 14:49 211 查看
AttributeUsage AttributeTargets

在C#的类中,有的类加上了
[AttributeUsage(AttributeTargets.Property)]
这个是起什么作用的呢?
AttributeTargets 枚举

成员名称说明
All可以对任何应用程序元素应用属性。
Assembly可以对程序集应用属性。
Class可以对类应用属性。
Constructor可以对构造函数应用属性。
Delegate可以对委托应用属性。
Enum可以对枚举应用属性。
Event可以对事件应用属性。
Field可以对字段应用属性。
GenericParameter可以对泛型参数应用属性。
Interface可以对接口应用属性。
Method可以对方法应用属性。
Module可以对模块应用属性。
Parameter可以对参数应用属性。
Property可以对属性 (Property) 应用属性 (Attribute)。
ReturnValue可以对返回值应用属性。
Struct可以对结构应用属性,即值类型。
下面的代码示例演示如何应用 AttributeTargets 枚举:

using System;

namespace AttTargsCS
{
// This attribute is only valid on a class.
[AttributeUsage(AttributeTargets.Class)]
public class ClassTargetAttribute : Attribute
{
}

// This attribute is only valid on a method.
[AttributeUsage(AttributeTargets.Method)]
public class MethodTargetAttribute : Attribute
{
}

// This attribute is only valid on a constructor.
[AttributeUsage(AttributeTargets.Constructor)]
public class ConstructorTargetAttribute : Attribute
{
}

// This attribute is only valid on a field.
[AttributeUsage(AttributeTargets.Field)]
public class FieldTargetAttribute : Attribute
{
}

// This attribute is valid on a class or a method.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class ClassMethodTargetAttribute : Attribute
{
}

// This attribute is valid on any target.
[AttributeUsage(AttributeTargets.All)]
public class AllTargetsAttribute : Attribute
{
}

[ClassTarget]
[ClassMethodTarget]
[AllTargets]
public class TestClassAttribute
{
[ConstructorTarget]
[AllTargets]
TestClassAttribute()
{
}

[MethodTarget]
[ClassMethodTarget]
[AllTargets]
public void Method1()
{
}

[FieldTarget]
[AllTargets]
public int myInt;

static void Main(string[] args)
{
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: