有没有办法告诉对象是否在c#中显式实现了ToString

有没有办法告诉对象是否在c#中显式实现了ToString,第1张

概述我试图在我的代码中记录有关某些对象和类的状态的信息.并非所有类或库都使用序列化实现.所以我在属性上使用Reflection来写出状态的 XML文档.但是,我遇到了一些挑战,例如内置类(即字符串,日期时间,数字等)等一些对象具有ToString函数,该函数以有意义的方式打印出类的值.但是对于其他类,调用ToString只是使用继承的基ToString来吐出对象类型的名称(例如Dictionary). 我试图在我的代码中记录有关某些对象和类的状态的信息.并非所有类或库都使用序列化实现.所以我在属性上使用Reflection来写出状态的 XML文档.但是,我遇到了一些挑战,例如内置类(即字符串,日期时间,数字等)等一些对象具有ToString函数,该函数以有意义的方式打印出类的值.但是对于其他类,调用ToString只是使用继承的基ToString来吐出对象类型的名称(例如Dictionary).在这种情况下,我想以递归方式检查该类中的属性.

因此,如果任何人都可以帮我反思要么弄清楚是否在属性上实现了ToString我正在看这不是基本方法或指出使用GetValue检索集合属性的正确方法我会很感激它.

Ĵ

解决方法 要确定方法是否已覆盖默认的.ToString(),请检查MethodInfo.DeclaringType,如下所示:
voID Main(){    Console.Writeline(typeof(MyClass).getmethod("ToString").DeclaringType != typeof(object));    Console.Writeline(typeof(MyOtherClass).getmethod("ToString").DeclaringType != typeof(object));}class MyClass {    public overrIDe string ToString() { return ""; }}class MyOtherClass {}

打印出来:

TrueFalse
总结

以上是内存溢出为你收集整理的有没有办法告诉对象是否在c#中显式实现了ToString全部内容,希望文章能够帮你解决有没有办法告诉对象是否在c#中显式实现了ToString所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1252129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存