.NET: C#: Attribute
2015-06-25 15:24
429 查看
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本质上是一个类
View Code
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(0, "How to use attribute in .NET", "anytao_net", 0))); } } }
View Code
相关文章推荐
- C#中子线程操作主线程中窗体上控件的方法
- C# 文件下载四方法
- C#中的委托(Delegate)和事件(Event)
- 【PD】PowerDesigner生成C#代码模板设置
- C# GDI绘图—简单画板的实现
- 算法练习 -- DP C# 实现 全组合算法
- C# 中的委托和事件
- C#截取文件的文件夹地址
- 【第一篇笔记】C# 全局容错,全局异常
- C# FTP 自动创建目录/上传文件
- 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2
- 介绍C#结构体与类区别
- C#客户端的异步操作
- C# 6 —— 属性
- 用C# 实现C/S模式下软件自动在线升级
- c#, extract number from string
- 统计多个wav文件的总音频时长
- List<T>线性查找和二分查找BinarySearch效率分析
- VS问题:该依赖项是由项目系统添加的,不能删除。
- C#读取EXCEL