Может ли Visual Studio использовать более ранний синтаксис C # в дополнение к более ранним версиям .NET Framework? - PullRequest
6 голосов
/ 14 февраля 2011

Легкая часть:

Ориентация платформы .NET 2.0 в проекте Visual Studio 2010 с использованием раскрывающегося списка.

Сложная часть:

Можно ли указать конкретную версию синтаксиса - например, var s = "hello world" является допустимым синтаксическим сахаром в VS2008 и выше, но не будет компилироваться в VS2005. Можно ли настроить VS2010 для отметки этого во время компиляции?

Ответы [ 3 ]

9 голосов
/ 14 февраля 2011

Это можно сделать, указав языковую версию в настройках проекта.Чтобы установить языковую версию C # 2.0, выполните следующие действия:

  • Щелкните правой кнопкой мыши проект и выберите «Свойства»
  • Перейдите на вкладку «Сборка»
  • Нажмитекнопка «Дополнительно»
  • Измените раскрывающийся список «Языковая версия» на «ISO-2»

enter image description here

Вот другие варианты выбора и ихзначения в Visual Studio 2010.

  • ISO-1: C # 1.0 / Visual Studio RTM и 2003
  • ISO-2: C # 2.0 / Visual Studio 2005
  • C #3.0: C # 3.0 / Visual Studio 2008
  • по умолчанию: C # 4.0 / Visual Studio 2010
8 голосов
/ 14 февраля 2011

Да. Из IDE установите:

Project Properties -> Build -> Advanced -> Language Version : ISO-2
2 голосов
/ 14 февраля 2011

Да, вы можете сделать это, как говорили другие, - но это не идеальная симуляция компилятора C # 1, как я обнаружил, когда делал презентацию. Он обнаружит «большие» изменения в синтаксисе, но не некоторые тонкие изменения в поведении. Например, в C # 1 нет преобразования группы методов, поэтому вы не можете сделать это:

delegate void Foo(string x);
void Bar(string y) {}
...
Foo foo = Bar;

... но простая установка компилятора C # 4 для цели C # 1 не подхватывает это.

...