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);
                }
    
            }
  • 相关阅读:
    IsIconic() OnPaint里的用途
    中值滤波
    一个小学生题库生成器
    音视频同步
    [转]字符编码笔记:ASCII,Unicode和UTF8
    项目中常见bug及解决方法
    TSQL基础chp10可编程对象学习笔记[上]
    使用UdpAppender时出现了“使用了与请求协议不兼容的地址”的解决办法
    .net gridview 任意单击某行跳转到新的页面,并且新页面的参数来自于与gridview中的不可见字段
    数组去重的四种方法
  • 原文地址:https://www.cnblogs.com/Optimism/p/10472744.html
Copyright © 2011-2022 走看看