这两个都被编译器接受:
ssMinnow = listStrLineElements[VESSEL_TO_AVOID].ToString();
ssMinnow = listStrLineElements[VESSEL_TO_AVOID];
一种方式比另一种更好吗? ToString()或不是ToString(),这就是问题。
答案 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()可以作为开发人员阅读代码的路标。显式调用描述了更多的原始意图,而不是将其作为编译器实现的假设。