C#中的Attribute属性

在C#中,attribute是作为一种程序源代码的元素修饰符存在的,因为有的时候我们需要给自己的代码添加一些描述性的说明信息。当这些我们不愿意用注释或内部代码用来描述的信息,被作为attribute代码而编译的话,编译器会将它们生成到metadata中去。

同时,attribute也是一种object。

 1 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | 
 2 AttributeTargets.ReturnValue | AttributeTargets.Property, AllowMultiple = true, Inherited = true)] 
 3     public class CountryAttribute : Attribute
 4    { 
 5        
 6         public CountryAttribute(){} 
 7
 8         public CountryAttribute(string name)
 9         { 
10             this.Name = name;         
11         } 
12
13         public int PlayerCount { get; set; }         
14         public string Name { get; set; }     
15     } 
16
17     [Country("China")]     
18     [Country("America")]     
19     public class Sportsman
20     { 
21         public string Name { get; set; }    
22      
23         [Country(PlayerCount = 5)]         
24         public virtual void Play(){}     
25      } 
26     
27     public class Hoopster : Sportsman     
28     { 
29         public override void Play(){}     
30      } 

使用attribute有很显著的方便。他是一种会被编译的程序,但却能像注释一样使用。比起使用注释,attribute可以在执行结果中标识函数、返回值等结果,实现一些更加复杂的标识功能。但是,根据一些资料attribute本身并不是修饰符,而是一种类,被实例化的类,通过反编译可以看到这一点。

时间: 2024-07-30 13:47:47

C#中的Attribute属性的相关文章

JS Attribute属性操作

Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍. attributes:获取一个属性作为对象 getAttribute:获取某一个属性的值setAttribute:建立一个属性,并同时给属性捆绑一个值createAttribute:仅建立一个属性removeAttribute:删除一个属性 getAttributeNode:获取一个节点作为对象setAttributeNode:建立一个节点removeAttributeNode:删除一个节点 attrib

Core Data浅谈系列之十 : 关于数据模型中实体的属性

之前写了<Core Data浅谈系列汇总>,今天稍微回顾了下,做些补充. 在这个系列的第一篇<基础结构>中(2013年1月份的文章,时间过得好快啊!),有简单带过Entity的Attribute: 数据类型.布尔值统一用NSNumber来表示: 字符串类型用NSString表示: 时间类型用NSDate表示: 二进制数据类型用NSData表示: 非标准类型用Transformable来表示: 而Attribute还有其自身的Properties,比如Transient表示不用持久化

TextView在xml文件中加入onClick属性后,clickable值依旧是false的原因。

先看View中是如何定义clickable和onClick的: case com.android.internal.R.styleable.View_clickable: if (a.getBoolean(attr, false)) { viewFlagValues |= CLICKABLE; viewFlagMasks |= CLICKABLE; } break; 上面这段代码是View源码中对clickable属性的定义,缺省值为false. case R.styleable.View_on

浅析C#中的Attribute[转]

首先贴出原文作者和地址,以表示感谢. 原文作者:hyddd 原文地址:http://www.cnblogs.com/hyddd/ 正文: 一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAttribute [AttributeUsage(AttributeTargets.Class)] public class VersionAttribute : Attribute { public string Name { get; set; } publ

Servlet中进行context属性的同步

Servlet中进行context属性的同步: 必须所有使用context的servlet都进行synchronized才可以实现同步: servlet: package com.stono.servlet.synchronize; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; i

Notepad++中的颜色属性大全

Indent guideline style  缩进参考线的颜色 Brace highlight style 鼠标指针在框架左右时框架的颜色(如css中{}   js中的()) Bad brace color  错误的框架的颜色(如js中{}里面有错误,这个{}的颜色) Current line background colour  鼠标指向的当前行的背景颜色 Selected text colour  选中文本的颜色 Caret colour  鼠标指针的颜色 Line number marg

js中的Attribute

Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍. attributes:获取一个属性作为对象 getAttribute:获取某一个属性的值setAttribute:建立一个属性,并同时给属性捆绑一个值createAttribute:仅建立一个属性removeAttribute:删除一个属性 getAttributeNode:获取一个节点作为对象setAttributeNode:建立一个节点removeAttributeNode:删除一个节点 attrib

js中的attribute详解

Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍. attributes:获取一个属性作为对象 getAttribute:获取某一个属性的值setAttribute:建立一个属性,并同时给属性捆绑一个值createAttribute:仅建立一个属性removeAttribute:删除一个属性 getAttributeNode:获取一个节点作为对象setAttributeNode:建立一个节点removeAttributeNode:删除一个节点 attrib

关于VO中的Attribute的问题

对于新手来说,有些时候会遇到VO中的Attribute的各种问题; 总结如下:1,你页面上输入了值,但是点击保存之后值并不能存到数据库,这个是因为该字段在VO中不是基于EO的  2,你将一个VO中的EO去掉,然后将一个没有问题的SQL放入到VO中点击应用,这个时候你会发现Vo中的Attribute并没有任何属性,那么 你需要这么处理;首先将你之前的SQL拷贝出来,再将VO中的SQL替换为select 1 from dual ,点击应用,然后点击确定,再输入自己的SQL点击应用,这样之前消失的属性