ToString()在这里好,坏,还是简单多余?

时间:2012-02-13 16:27:02

标签: c# .net tostring

这两个都被编译器接受:

ssMinnow = listStrLineElements[VESSEL_TO_AVOID].ToString();
ssMinnow = listStrLineElements[VESSEL_TO_AVOID];

一种方式比另一种更好吗? ToString()或不是ToString(),这就是问题。

6 个答案:

答案 0 :(得分:7)

这不仅是多余的,而且也是危险的:如果listStrLineElements[VESSEL_TO_AVOID]碰巧是null,那么如果您使用ToString(),您的应用程序将抛出异​​常;如果没有ToString(),则只需将null分配给ssMinnow

答案 1 :(得分:4)

如果listStrLineElements[VESSEL_TO_AVOID]返回一个字符串,那么是的,这是多余的。如果它返回其他类型,那么不,它不是多余的。

答案 2 :(得分:3)

一般来说,您不需要调用ToString()方法,返回的对象类型已经是String

在您的示例中,我们无法确定ssMinnow没有显示声明类型:我假设您使用了var关键字,它可以同时使用它们,或者listStrLineElements[VESSEL_TO_AVOID]已经返回String

答案 3 :(得分:1)

简直多余。我更喜欢离开ToString(),不需要它,但它是一个判断调用。

答案 4 :(得分:0)

如果您已经返回字符串,请不要使用ToString。你只是增加了不必要的开销。

答案 5 :(得分:0)

这并不像说的那么简单。冗余,可能;好的,坏的,意见问题。因为如果在某处将对象视为字符串,则无论如何都会调用toString(),显式使用toString()可以作为开发人员阅读代码的路标。显式调用描述了更多的原始意图,而不是将其作为编译器实现的假设。