[C#] 语法之Attribute
在c#中,定义类的成员,可以定义Property称为属性.Attribute就称为特性.
在FCL中,有内置的Attribute.如:
Condition[Attribute]:在什么条件可以调用.(只能作用于返回值为void的方法上)
Obsolete:方法弃用.支持禁用.
代码1:
- class Program
- {
- static void Main(string[] args)
- {
- Func();
- Console.ReadLine();
- }
- [Obsolete("you can use Func to replace this",true)]
- private static void Test()
- {
- Console.WriteLine("noooo");
- }
- private static void Func()
- {
- Console.WriteLine("yesss");
- }
- }
- class T
- {
- [Conditional("DEBUG")]
- public static void M(string str)
- {
- Console.WriteLine("Method{0}", str);
- }
- }
内置Attribute
自定义Attribute:
代码2:
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
- public class HelpAttribute : Attribute
- {
- public HelpAttribute(string str)
- {
- HelpStr = str;
- }
- public string Name { get; set; }
- public string HelpStr { get; set; }
- }
自定义Attribute
AttributeTargets.Class:作用目标只能是类.
AllowMultiple:是否可以在一个元素上多次作用特性.
Inherited:当目标被继承时,特性是否也继承.
反射获取类的Attribute信息:
代码3:
- class Program
- {
- static void Main(string[] args)
- {
- var attrs = typeof(MyClass).GetCustomAttributes(false);
- for (int i = ; i < attrs.Length; i++)
- {
- var attr = attrs[i] as HelpAttribute;
- if (attr != null) Console.WriteLine(attr.HelpStr + attr.Name);
- }
- Console.ReadLine();
- }
- }
- [Help("good", Name = " class")]
- class MyClass
- {
- }
反射获取特性信息
[C#] 语法之Attribute的更多相关文章
- jquery attribute$=value选择器 语法
jquery attribute$=value选择器 语法 作用:[attribute$=value] 选择器选取每个带有指定属性且以指定字符串结尾的元素. 语法:$("[attribute ...
- jquery attribute选择器 语法
jquery attribute选择器 语法 作用:[attribute] 选择每个带有指定属性的元素.可以选取带有任何属性的元素(对于指定的属性没有限制). 语法:$("[attribut ...
- for...in与点语法
语法 for...in语句循环一个指定的变量来循环一个对象所有可枚举的属性.如下所示 for (variable in object){ statements } 问题 在实际的使用过程中发现,在fo ...
- LDAP注入与防御解析
[目录] 0x1 LDAP介绍 0x2 LDAP注入攻击及防御 0x3 参考资料 0x1 LDAP介绍 1 LDAP出现的背景 LDAP(Lightweight Directory Access Pr ...
- HTML 学习笔记 JQuery(选择器)
学习前端也有一段时间了,今天终于进入到JQuery阶段了,对于新手来讲,JQuery的选择器类型之多 功能之强大实在不是一天两天能够记得完的.现在,就采用边学边记录的方式.以后要是忘了的话,也有一个地 ...
- IOS学习笔记 O1
第一章 Objective-C语言基础 一.OC语言与C语言的比较 C语言是一门面向过程的语言,而OC则是一门面向对象的语言. C语言文件默认保存格式为.c,OC语言默认保存格式为.m,两者头文件格式 ...
- Python2.5-原理之模块
此部分来自于<Python学习手册>第五部分 一.模块(21章) 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用..模块往往对应于python程序文件.每个文件就是一个模 ...
- servlet&jsp高级:第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Xml 学习二
使用PHPDOM模型操作XML XML的树状结构: s 1.xml文档 1.1.创建DOM树 //创建DOM树$M = new DOMDocument('1.0','utf-8'); 1.2.加载 ...
随机推荐
- Codeforces Round #382 (Div. 2) A. Ostap and Grasshopper bfs
A. Ostap and Grasshopper 题面 On the way to Rio de Janeiro Ostap kills time playing with a grasshopper ...
- Enclosure POJ
0:Enclosure http://poj.openjudge.cn/challenge3/0/ 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 131072kB 描述 为了防止 ...
- javascript 搜索二叉树
function Tree() { this.root = null; } Tree.prototype = { constructor: Tree, addItem: function(value) ...
- ooofc.com域名备案问题导致无法正常访问临时解决方案
各位尊敬的easyradius用户: 由于临时收到ooofc.coom域名备案被删除的消息,之后ooofc.com就无法访问.导致用户无法访问控制台oa.ooofc.com,及用户中心user.ooo ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
- saiku 无密码登陆
公司想要使用saiku,希望没有密码直接可以使用,这样可以直接以iframe的形式嵌套到其他的系统中. 在网上搜索了很多,大致类似这篇博客介绍的:http://www.cnblogs.com/aviv ...
- 图解 & 深入浅出 JavaWeb:Servlet 再说几句
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- WPF Litbox样式和模板
1.在项目中使用ListBox时,经常会将ItemContainerStyle和ItemTemplate的作用搞混,ItemTemplate可以搞定一切好似ItemContainerStyle有点多余 ...
- IIS7.5配置SSL
1,首先需要准备两个证书(CA证书,服务器证书). CA证书由公共的CA机构提供,widnow系统内部已经内置了很多这类证书,如图(日文系统). 服务器证书是导入到IIS里面用的. 2,有了上面的认识 ...
- CSS 会被继承的属性
文本 color(颜色,a元素除外) direction(方向) font(字体) font-family(字体系列) font-size(字体大小) font-style(用于设置斜体) font- ...