zoukankan      html  css  js  c++  java
  • Reflector学习之特性理解

    代码
        [AttributeUsage(AttributeTargets.All,AllowMultiple= true,Inherited= false)]
        
    public class ForeignAttribute:System.Attribute
        {
            
    private string _languageType;

            
    private int _languageLevel;

            
    private string _languageInfo;

            
    //必须定义其构造函数,如果不定义 编译器提供无参默认构造函数
            public ForeignAttribute()
            { 
            
            }

            
    public ForeignAttribute(string languageType, int languagelevel)
            {
                _languageType 
    = languageType;

                _languageLevel 
    = languagelevel;
            
            }

            
    public string LanguageType
            {

                
    get { return _languageType == null ? string.Empty : _languageType; }
            }

            
    public int LanguageLevel
            {
                
    get { return _languageLevel; }
            }

            
    public string LanguageInfo
            {
                
    get { return _languageInfo; }

                
    set { _languageInfo = value; }
            
            }

            
    public void CanSpeak()
            {
                Console.WriteLine(
    "He can speak {0}.", _languageType == null ? "Chinese Only" : _languageType);
            
            }
        }
    代码
     [ReflectorDemo.Foreign("English",8,LanguageInfo= "This is US English,but not England English")]
         
    public class LanguageTeacher
        {
            
    public void SayHello()
            {
                Console.WriteLine(
    "Hello,I'm a Foreign Language teacher,I can speak Foreign Language.");
            }
        }

        
    //class Program
        
    //{
        
    //    static void Main(string[] args)
        
    //    {
        
    //        Type type = typeof(LanguageTeacher);

        
    //        System.Reflection.MemberInfo memberinfo = type;

        
    //        ReflectorDemo.ForeignAttribute can = (ReflectorDemo.ForeignAttribute)Attribute.GetCustomAttribute(memberinfo,typeof(ReflectorDemo.ForeignAttribute));

        
    //        if (can != null)
        
    //        {
        
    //            Console.WriteLine("Class of LanguageTeacher Can Speak:" + can.LanguageType);

        
    //            Console.WriteLine("The English Level of LanguageTeacher is:" + can.LanguageLevel);

        
    //            Console.WriteLine("And," + can.LanguageInfo);
        
    //        }

        
    //        //反射创建LanguageTeacher 对象,执行它的SayHello方法
        
    //        Object obj = Activator.CreateInstance(type);

        
    //        System.Reflection.MethodInfo mi = type.GetMethod("SayHello");

        
    //        mi.Invoke(obj, null);
            
            
        
    //    }
        
        
    //}

    转自:http://www.cnblogs.com/cnliu/archive/2010/02/25/1673384.html

  • 相关阅读:
    关于 L3 缓存行 cacheLIne 的研究!还是对程序有举足轻重的作用!
    所谓的科学,根本就没有解决问题的根本。如框架,框架再好,也需要内容。
    编译器开发,手动把汇编转 机器码
    测试HTML
    神奇的经历,顶上去保证上帝保佑你!!!!!
    ECS框架研究 ,unity 以及缓存行的研究
    AVX 指令详解 ,还有SSE指令
    关于 Visual Studio 2017 ,或2019 ,Installer 没检测到已安装的程序.以及C++ 创建项目失败
    TCP 协议 精解
    opc 相关组件
  • 原文地址:https://www.cnblogs.com/johnwonder/p/1673816.html
Copyright © 2011-2022 走看看