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

  • 相关阅读:
    Android学习之三:使用DDMS调试程序
    Android学习之二:使用Android文档帮助
    Android学习之四:创建一个简单程序
    Android学习之五:android一些基本控件
    创建Android开发环境
    Android学习之七:使用Container
    Android学习之六:使用Container
    IOSresign keyboard 新法儿
    IOStxt文件UTF8、UTF16格式
    IOSXMPP arc用方法fobjcarc
  • 原文地址:https://www.cnblogs.com/johnwonder/p/1673816.html
Copyright © 2011-2022 走看看