• 加特性类应用


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.IO;
    using System.Threading;
    using System.Reflection;

    namespace AsncyHandle
    {
        [AttributeUsage(AttributeTargets.All,AllowMultiple=true,Inherited=false)]
        class ClassMsgAttribute : Attribute
        {
            public string Msg = "";
            public ClassMsgAttribute()
            { }
            public ClassMsgAttribute(string s)
            {
                Msg = s;
            }
        }

        [ClassMsg("这是包含人类姓名类")]
        class Person
        {
           
            string name;
           [ClassMsg("这是存储人类信息字段")]
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
        }

       
        class Program
        {
          
            static void Main(string[] args)
            {

                //获取加特性类的实例Type
                Type t = Type.GetType("AsncyHandle.Person");
                //获取加在程序集加特性类 的 特性类实例
                object[] objs = t.GetCustomAttributes(false);
                //打出特性类的实例方法
                foreach (ClassMsgAttribute cl in objs)
                {
                    Console.WriteLine(cl.Msg);
                }
                //获取类的方法
                MemberInfo[] info = t.GetMembers();
                foreach (MemberInfo f in info)
                {
                    object[] bs = f.GetCustomAttributes(false);
                    //打出方法的特性类消息
                    for (int i = 0; i < bs.Length; i++)
                    {
                        if (bs[i] is ClassMsgAttribute)
                        {
                            ClassMsgAttribute b = bs[i] as ClassMsgAttribute;
                            Console.WriteLine(b.Msg);
                        }
                    }
                }
            }
        }
    }

       

  • 相关阅读:
    HDU4477 Cut the rope II 递推
    HDU4571 Travel in time 动态规划
    在VS2010中使用$err,hr快速查看当前GetLastError()的值
    对C语言的volatile关键字的理解
    三星S6D1121主控彩屏(240*320*18bit,262K)图形设备接口(GDI)实现
    C语言创建二叉树数据结构, 以及各种遍历
    Ubuntu下使用Dr.com宽带客户端上网的步骤
    8051单片机学习笔记/概要/总结/备忘
    联想笔记本电脑Ubuntu系统下触摸板的锁定
    [MSP430] 集成开发环境 IAR Embedded Workbench for MSP430 5.50
  • 原文地址:https://www.cnblogs.com/xuehaiyiye/p/3572428.html
Copyright © 2020-2023  润新知