C# · 12月 27, 2021

c# – toString()是否只对调试有用?

除了当然,它们使用原语.大多数(如果不是全部)我看到的实现只能从程序员的角度来看.

编辑:我明白我应该覆盖默认行为,这就是为什么我提到的实现:).并且我确实获得了在一些需要在GUI中显示String表示的组件中覆盖它的值.但是,至少在JDK中,我看到很多实现只有在需要调试对象实例时才会使用.

为什么它植根于Object类,因为这仅仅是GUI /调试的东西?有没有其他用途我不知道?

解决方法 当您想要对象的字符串表示时,toString()很有用.当然,这是为了调试目的而发生的,但也可以将操作的结果输出给用户.

例如,假设你有一个复杂的类来处理复数.如果要以3 2i的格式将它们打印出来,用户可以定义toString(),因为您不必每次都要写入格式,输出将一致.如果你想改变这个表示,比如说3 2j,你只需要在Complex类中触摸toString()方法.

所以ToString()也不是为了调试目的,而是一个很好的方式来获得一致的字符串表示你的对象.