大佬教程收集整理的这篇文章主要介绍了C#debug – 在不知道具有哪个属性的情况下查找某个值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想我有点不清楚.例如,我有一个ImagePart的对象.当我调试时,我想看到TargetName的值.要做到这一点,我应该将鼠标放在对象上,然后放在非公共成员上.但是,如果我想看到的价值更深,我很难找到它.
在要分析的对象的类中创建这样的方法:
String PropertyThatHasCertainValue(object value) { Type myType = this.GetType(); while(myType != typeof(object)) { foreach (PropertyInfo property_info in myType.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPubliC)) { if (object.Equals(property_info.GetValue(this,null),value)) { return property_info.Name; } } myType = myType.baseType; } return "No property has this value"; }
然后在手表中添加以下手表:
@H_25_5@myObjecTinstance.PropertyThatHasCertainValue(ValueYouAreLookingFor)请注意,您可能希望使用除了对象之外的其他内容作为参数,以便更容易在手表中输入,但是VS监视窗口您不仅可以轻松键入数字和字符串,还可以键入枚举. Visual studio手表功能非常强大,几乎总能正确评估表达式.
我已经添加了while循环以递归遍历所有父项. BindingFlags.NonPublic将返回类的所有私有和受保护方法,但不返回基类的私有方法.浏览所有基类,直到命中Object将解决此问题.
以上是大佬教程为你收集整理的C#debug – 在不知道具有哪个属性的情况下查找某个值全部内容,希望文章能够帮你解决C#debug – 在不知道具有哪个属性的情况下查找某个值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。