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)
{
}
}
}

AttributeTargets 枚举的更多相关文章

  1. C#中的 特性 详解(转载)

    本篇幅转载于:http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html C#中特性详解 特性提供了功能强大的方法,用于将元数据或声明信 ...

  2. 特性(C#)

    特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签,可以为程序集.类型,以及类型内部的各种成员添加扩展信息,用于表示一些附加信息.您可 ...

  3. Attribute

    Attribute介绍 咱们来说Attribute,他是一个类,所以自定义的Attribute都是继承自System.Attribute,一般命名的时候都是以Attribute结尾.在使用的时候我们可 ...

  4. .Net Attribute详解(上)-Attribute本质以及一个简单示例

    Attribute的直接翻译是属性,这和Property容易产生混淆,所以一般翻译成特性加以区分.Attribute常常的表现形式就是[AttributeName], 随意地添加在class, met ...

  5. [C#]Attribute特性(3)——AttributeUsage特性和特性标识符

    相关文章   [C#]Attribute特性 [C#]Attribute特性(2)——方法的特性及特性参数 AttributeUsage特性 除了可以定制自己的特性来注释常用的C#类型外,您可以用At ...

  6. C# Attribute 特性 学习

    一.特性的概述 公共语言运行库允许您添加类似关键字的描述性声明(称为特性 (Attribute))来批注编程元素,如类型.字段.方法和属性 (Property).属性与 Microsoft .NET ...

  7. 面向侧面的程序设计AOP-------《三》.Net平台AOP技术概览

    本文转载自张逸:晴窗笔记 .Net平台与Java平台相比,由于它至今在服务端仍不具备与unix系统的兼容性,也不具备类似于Java平台下J2EE这样的企业级容器,使得.Net平台在大型的企业级应用上, ...

  8. 浅析C#中的Attribute(转)

    最近用到了,所以静下心来找些资料看了一下,终于把这东西搞清楚了. 一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAttribute [Attribu ...

  9. C#中的Attribute

    最近用到了,所以静下心来找些资料看了一下,终于把这东西搞清楚了. 一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAttribute [Attribu ...

随机推荐

  1. Add two numbers [LeetCode]

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  2. Git切换分支出现提示'SSL端口:44301'及解决方案

    切换分支出现如下提示,并且自动签出了项目文件csproj. 修改项目文件csproj 修改前: <UseIISExpress>true</UseIISExpress> < ...

  3. 什么是Angular? 我们为什么要学习它?

    在我更新Ionic的时候有人问我什么是 Angular,我们为什么要学习它啊?这个是我的疏忽了,在没有告诉你们什么是 Angular 的时候就让大家着手去学习 Ionic .那么今天就让我们认识一下什 ...

  4. 【仿真】【modelsim】:verilog功能仿真流程

    一.编写verilog源文件,在diamond中编译.编写testbench文件.在diamond设置中将仿真工具设置为modelsim,运行仿真向导 二.自动进入modelsim, 编译全部 运行仿 ...

  5. MJRefresh的一个注意事项

    如果从视图一跳转到视图二之后,在视图二中进行MJRefresh的刷新操作,那么在推出试图二之前要用dealloc函数将MJRefreshHeaderView或者MJRefreshFooterView释 ...

  6. C# base64图片数据传送加号(+)变空格问题

    今天遇到一个问题,将图片的base64数据转发,客户收到base64数据后生成图片失真. 通过日志监控,对比客户收到的数据和我发出的数据,最终发现客户base64数据中原本应该显示为加号(" ...

  7. url编码 中文在url参数中传递,在请求头,响应头中传递,是如何编码的呢?

    一定要编码成url的吗?还是url自动把接受的汉字编码,请求头响应头到达之后再自动编码成汉字?这样似乎比较合理哦 先把iso8859-1 转换成 utf-8,在mvc中处理,然后响应的时候在转成iso ...

  8. OutputCache 如何使用本地缓存 【转】

    注意!ASP.NET MVC 3 的一个 OutputCache 问题   在用 ASP.NET MVC 3 重写博客园网站首页时,特地留意了一下这个缓存问题,通过这篇博文分享一下. 在 ASP.NE ...

  9. FreeBSD打开DTrace支持

    主要翻译自:https://wiki.freebsd.org/DTrace FreeBSD跟Linux发行版一个比较大的差异,就是提倡源码构建.因此这里提到比较多的编译开关设置.自2012年5月后,D ...

  10. DIV+CSS制作二级横向弹出菜单,略简单

    没有使用JavaScript控制二级菜单的显示,结果如上图所示. 代码如下: <!DOCTYPE html> <html> <head> <meta char ...