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);
                }
    
            }
  • 相关阅读:
    MySQL 中 where id in (1,2,3,4,...) 的效率问题讨论
    创建,增加,删除mysql表分区
    mysql分区及实例演示
    MySQL的表分区详解
    MySQL 存储过程传参之in, out, inout 参数用法
    MySQL里面的子查询实例
    超详细mysql left join,right join,inner join用法分析
    MySQL force Index 强制索引概述
    MyISAM和InnoDB的索引在实现上的不同
    java中的守护线程
  • 原文地址:https://www.cnblogs.com/Optimism/p/10472744.html
Copyright © 2011-2022 走看看