.NET: C#: Attribute
ref: http://www.uml.org.cn/net/200810135.asp
ref: http://blog.csdn.net/okvee/article/details/2610349
注意这么几个问题:
1. Attribute和Property的区别
2. Attribute在编译中就有了,与面向对象中的多态不一样
3. 常用的Attribute: AttributeUsage, Flags, DllImport, Serializable, Conditional, 自定义特性
4. 可以通过反射来获取信息
5. Attribute本质上是一个类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data; using MySql.Data.Entity; using MySql.Data.MySqlClient; using System.IO; using System.Data; using System.Diagnostics; using System.Runtime.InteropServices; using System.Reflection; namespace test4 { [Flags] public enum Animal { Dog = 0x0001, Cat = 0x0002, Duck = 0x0004, Chicken = 0x0008 } [AttributeUsage(AttributeTargets.Class)] public class VersionAttribute : Attribute { public string Name { get; set; } public string Date { get; set; } public string Description { get; set; } } [Version(Name = "yingzhongwen", Date = "2015-06-25", Description = "yingzhongwen's class")] public class MyClass { public void SayHello() { Console.WriteLine("Hello, my .NET world."); } } class Program { [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string caption, int type); static void Main(string[] args) { var info = typeof(MyClass); var classAttribute = (VersionAttribute)Attribute.GetCustomAttribute(info, typeof(VersionAttribute)); Console.WriteLine(classAttribute.Name); Console.WriteLine(classAttribute.Date); Console.WriteLine(classAttribute.Description); object obj = Activator.CreateInstance(typeof(MyClass)); MethodInfo mi = (typeof(MyClass)).GetMethod("SayHello"); mi.Invoke(obj, null); Animal animals = Animal.Cat | Animal.Dog; Console.WriteLine(animals.ToString()); Console.WriteLine((MessageBox(, ))); } } }
.NET: C#: Attribute的更多相关文章
- [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute
剖析 AssemblyInfo.cs - 了解常用的特性 Attribute [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5944391.html 序 ...
- JavaScript特性(attribute)、属性(property)和样式(style)
最近在研读一本巨著<JavaScript忍者秘籍>,里面有一篇文章提到了这3个概念. 书中的源码可以在此下载.我将源码放到了线上,如果不想下载,可以直接访问在线网址,修改页面名就能访问到相 ...
- [C#] C# 知识回顾 - 特性 Attribute
C# 知识回顾 - 特性 Attribute [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5911289.html 目录 特性简介 使用特性 特性 ...
- js attribute 和 jquery attr 方法
attribute 是原生js dom 对象上的一个属性,这个属性有很多子属性,比如 isId(判断属性是否是Id) , name (获取属性名称) , value (获取属性值),attribute ...
- 【.net 深呼吸】自定义特性(Attribute)的实现与检索方法
在.net的各个语言中,尤其是VB.NET和C#,都有特性这一东东,具体的概念,大家可以网上查,这里老周说一个非标准的概念——特性者,就是对象的附加数据.对象自然可以是类型.类型成员,以及程序集. 说 ...
- angular2系列教程(四)Attribute directives
今天我们要讲的是ng2的Attribute directives.顾名思义,就是操作dom属性的指令.这算是指令的第二课了,因为上节课的components实质也是指令. 例子
- 学会给你的类(及成员)来定制一套自己的Attribute吧
在通过Visual Studio创建的C#程序集中,都包含了一个AssemblyInfo.cs的文件,在这个文件中,我们常常会看到这样的代码 [assembly: AssemblyTitle(&quo ...
- Attribute操作的性能优化方式
Attribute是.NET平台上提供的一种元编程能力,可以通过标记的方式来修饰各种成员.无论是组件设计,语言之间互通,还是最普通的框架使 用,现在已经都离不开Attribute了.迫于Attribu ...
- SharePoint 2016 配置向导报错 - The 'ListInternal' attribute is not allowed
前言 配置SharePoint 2016的配置向导中,第三步创建配置数据库报错,然后百度.谷歌了一下,都没有解决,自己看日志搞定,也许会有人遇到类似问题,分享一下. 1.配置向导的错误截图,如下图: ...
- C# 知识特性 Attribute
C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用"反射"查询 ...
随机推荐
- 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009
Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...
- java正则表达式取括号里面的内容
public static String changeCompName(String compName){ String NewCompName=""; //cm1230NHL6X ...
- Jquery小例子:全选按钮、加事件、挂事件;parent()语法;slideToggle()语法;animate()语法;元素的淡入淡出效果:fadeIn() 、fadeOut()、fadeToggle() 、fadeTo();function(e):e包括事件源和时间数据;append() 方法
function(e): 事件包括事件源和事件数据,事件源是指是谁触发的这个事件,谁就是事件源(div,按钮,span都可以是事件源),时间数据是指比如点击鼠标的事件中,事件数据就是指点击鼠标的左建或 ...
- phpCAS::handleLogoutRequests()关于java端项目登出而php端项目检测不到的测试
首先,假如你有做过cas,再假如你的cas里面有php项目,这个时候要让php项目拥有cas的sso功能,你需要改造你的项目,由于各人的项目不同,但是原理差不多,都是通过从cas服务器获取sessio ...
- 文件管理php代码操作文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Redis学习二 C#中如何进行这五种数据类型的操作
我在网上找了好久,就是没有找到Redis和C#结合的书,都是和别的编程语言在一起鬼混. 简单的用C#实现向Redis中插入那我中类型的数据 首先需要到NuGet 里面下载 Redis IDatabas ...
- 搭建PHP环境LAMP(Linux+Apache+MySQL+PHP)
1.安装Apache yum -y install httpd 用/etc/init.d/httpd start 启动apache apache默认的程序目录是/var/www/html 2.安装M ...
- SQLAlchemy 一对多
下述範例描述了電影同導演的多對一關係.範例中說明了從用戶定義的Python類建立數據表的方法,雙方關係例項的建立方法,以及最終查詢數據的方法:包括延遲載入和預先載入兩種自動生成的SQL查詢. 結構定義 ...
- Linux 性能检测 - CentOS 安装 paramon
简介 paramon是一款性能检测工具. 数据发送:cnt 数据接收:svr Continue...
- tabBaritem的图片偏移
tabBarItem.imageInsets = UIEdgeInsetsMake(-10, 0, 10, 0);