.ToString()方法如何工作?

dee*_*een 6 c# tostring object-to-string

有时当我调用类的.ToString()方法时,它会返回类的完全限定名.但是对于某些类的/ struct(例如Int32),它返回一个字符串对应的对象(整数的值).这是否意味着Int32该类重写该ToString()方法,并且返回完全限定名称的类不会覆盖它,而只是调用base的(Object's)ToString()方法?Object.ToString()实现是否只返回类的完全限定名称?

Eri*_*ert 17

有时,当我调用ToString方法时,它返回接收调用的对象的运行时类型的完全限定名称.

正确.

但是对于某些类型,例如System.Int32,ToString返回转换为字符串的接收器的值.

正确.

System.Int32结构是否覆盖了ToString方法?

是.

其他类型的ToString方法是否返回完全限定类型名称不会覆盖ToString

情况可能就是这样,是的.当然,他们可以覆盖该方法并使覆盖方法与基类方法完全相同,但这有点无意义.

那么在那些情况下,调用ToString只调用System.Object执行ToString,返回完全限定名称?

正确.

你似乎已经掌握了它是如何工作的.我唯一的修正是注意这System.Int32是一个结构,而不是一个.

  • @Ala:你问我为什么有人贬低你的问题?可能是因为在ToString方法的文档页面上回答了****.如果您对方法有疑问,请尝试阅读该方法的文档; 如果它没有回答您的问题,请尝试在网站或此网站上搜索答案.不要让人们在忙碌的一天中抽出时间回答你的问题,而是先自己做一个基本的,最低水平的研究. (5认同)

Mar*_*zek 8

你有没有试过搜索你的问题的答案?

http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx

ToString是.NET Framework中的主要格式化方法.它将对象转换为其字符串表示形式,以便适合显示.(有关.NET Framework中格式化支持的信息,请参阅格式化类型.)

ToString方法的默认实现返回Object类型的完全限定名称,如以下示例所示.

因为Object是.NET Framework中所有引用类型的基类,所以此行为由不覆盖ToString方法的引用类型继承.以下示例说明了这一点.它定义了一个名为Object1的类,它接受所有Object成员的默认实现.它的ToString方法返回对象的完全限定类型名称.