2010-04-29 3 views
4

Можно создать дубликат:
Use of var keyword in C#Бесполезное использование ключевого слова 'var' считается опасным?

Я использую его почти все время, пока я не буду, не назначая переменной сразу, в этом случае это не вариант. Хорошо или плохо?

+1

Интересное, что вы можете проголосовать, чтобы закрыть свой вопрос :) – spender

+3

+1 для закрытия своего вопроса, когда вы узнали, что это был дубликат! –

ответ

3

Используется неявно типизированные переменные (var ключевое слово) является:

  • Great: когда вам нужен анонимный тип.
  • Хорошо: когда тип очевиден (var sb = new stringbuilder();)
  • Bad: если тип не столь очевидна (var doc = repo.getdocs("base");)

Если вы будете использовать, если часто, то это, вероятно, хорошо. Использование его все время означает, что иногда людям приходится исследовать, какой тип вы используете. Следует четко рассмотреть распечатку того, какой тип используется.

+0

Но ... можно просто навести курсор мыши на функцию 'getdocs' ... мы, как хакер Python, мне нравится var много. –

+0

Но в то же время людям не нужно работать. Это баланс. Я сам использую неявное типирование. (Я буду летать на Python этим летом. Не могу дождаться!) –

+3

Наведение - это боль и не работает, когда вы находитесь вне IDE. Я бы скорее просто увидел явно объявленный тип. Трудно это напечатать? Некоторые люди слишком ленивы. – senfo

0

Вы должны найти свой баланс между легкостью письма и простотой чтения. Конечно, вы можете навести курсор на следующее использование переменной, чтобы увидеть тип вывода, но если вы не читаете код в среде IDE, это может быть проблемой.

Один крайний случай, который я недавно столкнулся, что я пытался вручную заменить отдельные экземпляры Foo в моем проекте с экземплярами Bar (улучшенный Foo). Я сделал бы все для Foo, и оказалось, что я пропустил несколько, потому что сделал var quux = GetSomething(), где GetSomething возвращает экземпляр Foo. Но, это немного крайний случай, и я бы не стал уделять слишком много внимания этому только в отношении использования var.

0

Это, по-видимому, рекомендуемый способ (если вы используете инструмент, такой как Resharper, он по умолчанию предлагает заменить определенный тип на «var», где это возможно). Я лично предпочитаю использовать определенные типы для удобочитаемости. Однако, если код является хорошим качеством, а методы имеют нормальную длину, он остается читаемым даже при использовании «var». Здесь есть продолжительная дискуссия по этому вопросу: Use of var keyword in C#

В противном случае влияние использования var не влияет на производительность (это не похоже на использование «объекта» и литье типов).

Смежные вопросы