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);
                }
    
            }
  • 相关阅读:
    iOS小技巧总结,绝对有你想要的
    Myeclipse for Mac快捷键
    iOS开发如何学习前端
    iOS应用支持IPV6,就那点事儿
    App Store审核被拒的23个理由
    43个优秀的Swift开源项目
    ExtJs组件之间的相互访问,访问机制
    hibernate or连接查询内容/criteria动态或连接查询/disjunction/其他查询条件
    hibernate如何解除关系———只删除多方保留一方
    java如何操作视图
  • 原文地址:https://www.cnblogs.com/Optimism/p/10472744.html
Copyright © 2011-2022 走看看