zoukankan      html  css  js  c++  java
  • 利用反射来查看对象中的私有变量

    在程序设计的时候,我们可能会写一些底层使用的库,包括一些核心的类,而这些通常封装了一些私有的方法和私有变量,在程序未完成的时候,我们可能需要对其进行一些调试,来检验所定义的类是否有错误。
    当然也有可能这个库是来自于其它开发人员。
    我们在调试中可能会去查看类中的私有变量。

    我的个人习惯是写了一段自己认为比较重要的dll后对其进行一些测试,验证是否其正确性。

    调试和测试有一定的区别。
    调试是你可能不知道程序最终运行的结果,而测试就是你确定了输入,你可以预计输出,因此来验证最终的结果。

    说反射的资料很多,我就不具体说如何查看一个类中的所有方法,所有成员的完成了。
    假设我已经知道有一个私有成员的名字,现在有这个类型的对象,我想知道私有成员的值怎么办?
    废话说了那么多,看一点代码,很容易了解如何通过反射来查看对象的私有成员。

    Type mytype = obj.GetType();
    FieldInfo  fieldinfo 
    =  mytype.GetField("_UserCouldExecutedt", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
    if(fieldinfo!=null)
    {
     String ss 
    = (string)fieldinfo.GetValue(obj);
     Console.WriteLine(ss);
    }


    很简单吧。


  • 相关阅读:
    Python基础05
    Python基础04
    Python基础03
    Python基础02
    Python基础01
    软件测试
    深入了解软件测试基础04
    深入了解软件测试基础03
    深入了解软件测试基础02
    深入了解软件测试基础01
  • 原文地址:https://www.cnblogs.com/king_astar/p/155382.html
Copyright © 2011-2022 走看看