c# - toString() 只对调试有用吗?

标签 c# java tostring

当然,除此之外,它们与基元一起使用。我看到的大多数(如果不是全部)实现仅从程序员的角度来看才有用。


编辑:我知道我应该覆盖默认行为,这就是我提到实现的原因:)。我确实得到了在 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/

相关文章:

c# - Xamarin表单选择器设置了所选项目

java - 将 HashMap 迭代器转换为具体类型时出现 ClassCastException

java - 如何通过JMX暴露Hystrix的断路器状态

string - Swift 中的 toString 与 String

java - 使用 AspectJ 编织 toString() 实现

C# 播放嵌入的mp3文件

c# - 我在 JIT/CLR 中发现了一个错误 - 现在我该如何调试或重现它?

c# - 是否可以将固定字节数组转换为结构,以便在 C# 中进行双向更改?

java - Class.newInstance() 方法如何使用?

java - 遇到java.lang.NullPointerException