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是一个结构,而不是一个类.
你有没有试过搜索你的问题的答案?
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方法返回对象的完全限定类型名称.