Как запретить ключевое слово var в .net 2.0 target? - PullRequest
7 голосов
/ 04 августа 2010

Я создал новый проект в Visual Studio с целевым фреймворком 2.0.Но даже если я оставил где-то var ключевое слово, Visual Studio успешно компилирует проект.Это правильное поведение, так как var - это 3.0?Существуют ли какие-либо настройки, предотвращающие компиляцию кода с var?

Ответы [ 4 ]

14 голосов
/ 04 августа 2010

var - это функция C # 3.0, но она не требует каких-либо framework функций.Другими словами, это абсолютно нормально для использования в проекте, ориентированном на .NET 2.0.То же самое верно и для многих других функций - анонимных типов, автоматических свойств, лямбда-выражений и т. Д.

См. Мою статью версии для получения дополнительной информации.(Мне нужно обновить его для C # 4 в какой-то момент ...)

Если вы хотите ограничить себя C # 2.0, вы можете указать языковую версию, нажав «Дополнительно»на вкладке «Построение» свойств проекта, IIRC.(Это определенно где-то там, но я бы предпочел выпить чашку кофе, чем проверять точное местоположение прямо сейчас.)

3 голосов
/ 04 августа 2010

var - это просто функция времени компиляции, после компиляции сборки компилятор вставляет тип фактический и тот факт, что вы использовали var, "потерян".

Таким образом, проект, нацеленный на версию 2.0 платформы, все еще может использовать функцию var, поскольку она фактически никак не влияет на выводимую сборку.

1 голос
/ 04 августа 2010

Пока ваш проект всегда будет компилироваться с Visual Studio 2008 или новее, вы можете безопасно использовать функции C # 3.0. Цель .NET 2.0 ограничивает только те библиотеки, которые вы можете использовать, а не какие языковые функции.

0 голосов
/ 04 августа 2010

Либо выполните полнотекстовую замену var на 1var1 и замените их вручную, либо используйте версии компилятора до 3.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...