码迷,mamicode.com
首页 > Windows程序 > 详细

.NET: C#: Attribute

时间:2015-06-25 17:07:57      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

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本质上是一个类

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using MySql.Data;
 6 using MySql.Data.Entity;
 7 using MySql.Data.MySqlClient;
 8 using System.IO;
 9 using System.Data;
10 using System.Diagnostics;
11 using System.Runtime.InteropServices;
12 using System.Reflection;
13 
14 namespace test4
15 {
16     [Flags]
17     public enum Animal
18     {
19         Dog = 0x0001,
20         Cat = 0x0002,
21         Duck = 0x0004,
22         Chicken = 0x0008
23     }
24     [AttributeUsage(AttributeTargets.Class)]
25     public class VersionAttribute : Attribute
26     {
27         public string Name { get; set; }
28         public string Date { get; set; }
29         public string Description { get; set; }
30     }
31     [Version(Name = "yingzhongwen", Date = "2015-06-25", Description = "yingzhongwen‘s class")]
32     public class MyClass
33     {
34         public void SayHello()
35         {
36             Console.WriteLine("Hello, my .NET world.");
37         }
38     }
39     class Program
40     {
41         [DllImport("User32.dll")]
42         public static extern int MessageBox(int hParent, string msg, string caption, int type);
43         static void Main(string[] args)
44         {
45             var info = typeof(MyClass);
46             var classAttribute = (VersionAttribute)Attribute.GetCustomAttribute(info, typeof(VersionAttribute));
47             Console.WriteLine(classAttribute.Name);
48             Console.WriteLine(classAttribute.Date);
49             Console.WriteLine(classAttribute.Description);
50             object obj = Activator.CreateInstance(typeof(MyClass));
51             MethodInfo mi = (typeof(MyClass)).GetMethod("SayHello");
52             mi.Invoke(obj, null);
53 
54             Animal animals = Animal.Cat | Animal.Dog;
55             Console.WriteLine(animals.ToString());
56             Console.WriteLine((MessageBox(0, "How to use attribute in .NET", "anytao_net", 0)));
57         }     
58     }
59 }
View Code

 

.NET: C#: Attribute

标签:

原文地址:http://www.cnblogs.com/yingzhongwen/p/4600079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!