2009-11-18 2 views
2

Можно создать дубликат:
C# ‘var’ vs specific type performanceЕсть ли успех в использовании ключевого слова 'var' в C#?

Я использую 'Var' ключевое слово широко. Коллега сказал мне, что был удар по использованию, но он не смог поддержать свой комментарий. Кто-нибудь знает о такой производительности?

+1

Dupe http://stackoverflow.com/questions/356846/c-var-vs-specific-type-performance –

ответ

6

Кто-то спросил that question здесь уже. Короче говоря, нет, генерируемый код IL тот же. Поэтому никакой перфект не попал. Если вы когда-нибудь задумывались, как один из способов сделать что-то отличается от другого, просто напишите образец, а затем используйте Reflector для анализа различий.

+3

тогда вопрос должен быть закрыт как дубликат, не так ли? –

+0

Спасибо за ссылку. Я искал SO, но не смог найти ничего об этом. – 2009-11-18 14:53:55

5

Нет, var - это просто синтаксический сахар. Он фактически не скомпилирован в MSIL. Попробуйте компилировать некоторый код с ключевым словом var и без него, затем откройте сборку в Reflector, чтобы убедиться сами.

4

Поскольку это функция времени компиляции, возможно, медленнее время компиляции, но не более медленное время выполнения.

+5

Да. Он может добавить много наносекунд в вашу сборку. –

2

Эта функция называется выводом типа. Компилятор выведет правильный тип во время компиляции, и генерируемый msil будет содержать правильный тип

1

Он имеет в виду во время компиляции или во время выполнения?

Во время выполнения невозможно получить удар производительности. Ключевое слово var полностью обрабатывается компилятором, и из IL не удается сказать, было ли использовано ключевое слово var. Ваш друг может подумать о новом ключевом слове C# 4 dynamic, который оказывает влияние на производительность.

Во время компиляции может возникнуть незначительное влияние на производительность, но об этом не о чем беспокоиться.

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