zoukankan      html  css  js  c++  java
  • c#反射(1)

    反射可以读取程序集中代码的内容,程序集一般指(dll或exe文件)。

    反射中Type类,这个类太强大了,可以获取到另一个类的名称,命名空间,程序集,以及这个类中的字段,属性,方法。可以方便我们查看某个类的方法,属性,字段。

    public void Test1()
            {
                Person per = new Person();
                Type TypeObj = per.GetType();
    
                Console.WriteLine(TypeObj.Name);                           //反射类的名称
                Console.WriteLine(TypeObj.Namespace);                      //反射类的命名空间
                Console.WriteLine(TypeObj.Assembly);                       //反射类所在的程序集
    
                Console.WriteLine(TypeObj.IsPublic);                       //反射类是否为公共
                Console.WriteLine(TypeObj.IsSealed);                       //反射类是否密封
            }
    
            public void Test2()
            {
                Person per = new Person();
                Type TypeObj = per.GetType();
    
                FieldInfo[] infor = TypeObj.GetFields();                   //获取类中的字段
                foreach (FieldInfo item in infor)
                {
                    Console.WriteLine(item.Name);
                }
                Console.WriteLine("--------------");
    
                MethodInfo[] MeFor = TypeObj.GetMethods();                 //获取类中的方法
                foreach (MethodInfo item in MeFor)
                {
                    Console.WriteLine(item.Name);
                }
                Console.WriteLine("--------------");
    
                PropertyInfo[] ProFor = TypeObj.GetProperties();           //获取类中的属性
                foreach (PropertyInfo item in ProFor)
                {
                    Console.WriteLine(item.Name);
                }
                Console.WriteLine("--------------");
            }

    一些运行技巧:Console.ReadLine()作用

    从控制台中读取用户输入的一行字符串,很多人添加ReadLine()是为了让程序运行完了停下来,避免控制台窗口被关掉。

    Assembly获取类的方法

            public void Test1()
            {
                Person per = new Person();
                //得到程序集
                Assembly ass = per.GetType().Assembly;
                Console.WriteLine(ass.FullName);
                
                //通过程序集得到所有的类
                Type[] typArray = ass.GetTypes();
                foreach (Type item in typArray)
                {
                    Console.WriteLine(item.Name);
                }
            }
    
            public void Test2()
            {
                Assembly assObj = Assembly.LoadFrom(@"");
    
                //通过程序集得到所有的类
                Type[] typArray = assObj.GetTypes();
                foreach (Type item in typArray)
                {
                    Console.WriteLine(item.Name);
                }
    
            }
  • 相关阅读:
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    预习非数值数据的编码方式
    计算机作业
    C语言||作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
  • 原文地址:https://www.cnblogs.com/Optimism/p/10472744.html
Copyright © 2011-2022 走看看