首页 > Windows开发 > 详细

C# 特性

时间:2016-01-27 18:56:30      阅读:145      评论:0      收藏:0      [点我收藏+]

1.特性类

 public class FanAttribute : Attribute
    {
        public FanAttribute(string des)
        {
            this._des = des;
        }
        private string _des;

        public string Des
        {
            get { return _des; }
        }
    }//end
 public class haiz : Attribute
    {
        string name;
        public double version;

        public haiz(string name)
        {
            this.name = name;

            // Default value.
            version = 1.0;
        }

        public string GetName()
        {
            return name;
        }
    }//end

2.类中声明特性

 [Fan("ceshi____")]
    [haiz("hc", version = 2.0)]
    public class anyclass
    {
    }//end

3.获取特性方法

public static T getAttr<T>(Type type) where T : class
        {
            T t = default(T);
            System.Attribute[] attrs = System.Attribute.GetCustomAttributes(type); 
            foreach (System.Attribute attr in attrs)
            {
                if (attr is T)
                {
                    t = attr as T;
                    break;
                }
            }
            return t;
        }

4.运行

anyclass a = new anyclass();
            System.Console.WriteLine("{0}", getAttr<haiz>(a.GetType()).GetName());

5.结果

技术分享

C# 特性

原文:http://www.cnblogs.com/hcfan/p/5164135.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!