当然,除此之外,它们与基元一起使用。我看到的大多数(如果不是全部)实现仅从程序员的角度来看才有用。
编辑:我知道我应该覆盖默认行为,这就是我提到实现的原因:)。我确实得到了在 GUI 中需要字符串表示的某些组件中覆盖它的值(value)。但是,至少在 JDK 中,我看到很多的实现只在您需要调试对象实例时才使用。
为什么它 Root 于 Object 类,因为它似乎只对 GUI/调试有用?还有其他我不知道的用途吗?
最佳答案
不,关键是你应该覆盖 ToString()
的默认实现使其有用。 ToString()
可以是将某些内容的值输出回 UI 的好方法。
一个简单的例子是,如果您有一个包含三个字符串(First、Middle、Last)的 Name 类。你可以有一个ToString()
为 UI 格式化它的方法:例如“Last, First Middle”。
或者存储数学运算的类(值 Left=2、Right=3、Result=6 和运算符 enum=Multiply)。调用ToString()
得到“2 * 3 = 6”。
但是,拥有各种不同的 To<qualifier>String()
可能更常见方法,如 .NET DateTime
类(class)。 ( ToShortDateString()
, ToLongDateString()
, ToLongTimeString()
, ...)
编辑:至于为什么它 Root 于 Object
类,这仅仅是因为 ToString()
对任何都是有效的操作。
此外,字符串可以是数据类型或数据使用者之间编码的好方法,因为它(实际上)保证可解析并且不需要额外的编码或注意。
关于c# - toString() 只对调试有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563676/