ToString () здесь хорошо, плохо или просто избыточно? - PullRequest
5 голосов
/ 13 февраля 2012

Оба из них принимаются компилятором:

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

Является ли один способ предпочтительнее другого?ToString () или не ToString (), вот в чем вопрос.

Ответы [ 6 ]

7 голосов
/ 13 февраля 2012

Это не только избыточно, но и опасно: если listStrLineElements[VESSEL_TO_AVOID] окажется null, ваше приложение будет выдавать исключение, если вы используете ToString(); без ToString() было бы просто присвоить null ssMinnow.

4 голосов
/ 13 февраля 2012

Если listStrLineElements[VESSEL_TO_AVOID] возвращает строку, то да, это избыточно.если он возвращает какой-то другой тип, то нет, он не является избыточным.

3 голосов
/ 13 февраля 2012

в общем случае вам не нужно вызывать метод ToString(), если тип возвращаемого объекта уже равен String.

, в вашем примере мы не можем сказать, что ssMinnow не показываеттип объявления: я предполагаю, что вы использовали ключевое слово var, которое будет работать с ними обоими, или listStrLineElements[VESSEL_TO_AVOID] возвращает уже String

1 голос
/ 13 февраля 2012

Просто избыточно.Я предпочитаю оставлять ToString () там, где это не нужно, но это вызов суждения.

0 голосов
/ 13 февраля 2012

Это не так просто, как указано. Возможно, с резервированием; хорошо или плохо, вопрос мнения. Так как toString () будет вызываться в любом случае, если объект где-то обрабатывается как строка, явное использование toString () может служить указателем для разработчика, читающего код. Явный вызов описывает больше первоначального намерения, чем оставить его как допущение для выполнения компилятором.

0 голосов
/ 13 февраля 2012

Не используйте ToString, если вы уже возвращаете строку.Вы просто добавляете ненужные накладные расходы.

...