Можете ли вы использовать дополнительные параметры в кодовом таргетинге .NET 3.5?

Я хочу написать библиотеку, которая использует новую функцию дополнительных параметров для C # 4.0, но я хочу настроить ее на версию 3.5. Это возможно?

Являются ли дополнительные параметры синтаксическим сахаром так же, как и методы расширения?

С VS2010 RC я смог создать приложение .NET 3.5, которое использует дополнительные параметры в C #.

Так что да, это все о синтаксическом сахаре.

VS 2010 поддерживает дополнительные параметры в C # для решений .NET 3.5. Однако одно из предостережений заключается в том, что компилятор командной строки сообщает об ошибках.

Итак, если у вас есть автоматические сборки в запуске, – используя NANT или что-то еще, используя компилятор командной строки, ваши сборки не сработают.

Как и Джон Скит, я получал параметр «Необязательный параметр», который нельзя использовать, потому что он не является частью спецификации языка 3.0 C # ». Однако в RTM-версии Visual Studio вы можете выбрать версию языка для «по умолчанию» в «Свойства проекта» -> «Сборка-> Дополнительно». Это заставило меня работать.

Вы можете использовать необязательные и именованные параметры в целевой структуре предыдущей версии, поскольку сборки сборки строятся в среде разработки для v4 (fe VS2010). Но вы должны знать о компиляции или публикации веб-сайтов во время выполнения, в этом случае будет использован компилятор целевой структуры. И поскольку компиляторы старых фреймворков не понимают синтаксис необязательных и именованных параметров, это приведет к ошибкам компилятора.

Перейдите к свойствам проекта -> вкладка «Создать» -> нажмите кнопку «Дополнительно» -> установите языковую версию на «по умолчанию» -> сохранить -> быть счастливой;)

У меня нет VS2010, установленного здесь для проверки, но я считаю, что это будет чисто языковая функция, и поэтому его следует использовать вне зависимости от целевой среды.

Редактирование: если посмотреть на эту ссылку (и несколько других), то представляется, что необязательные параметры компилируются в аргументы метода с атрибутом [opt] в il. Я не знаю, существовал ли этот параметр в предыдущих версиях clr, но все же я предполагал, что это так.

VB.NET имеет необязательные параметры, если вы хотите использовать необязательные параметры в .NET 3.5.

  • Ошибка ссылки на службу: не удалось сгенерировать код для ссылки на службу
  • Visual Studio 2010: возможно ли заставить редактор использовать ANSI, а не UTF-8?
  • Visual Studio - поиск по коду для китайского текста
  • Как вызвать библиотеку C # из Native C ++ (используя C ++ \ CLI и IJW)
  • WiX - установка предварительных требований и сторонних приложений
  • MSBuild Script и VS2010 публикуют применение преобразования Web.config
  • Как я могу заставить TFS2010 запускать MSDEPLOY для меня через MSBUILD?
  • Как я могу использовать Web.debug.config на встроенном сервере отладки визуальной студии?
  • Установка Visual Studio 2010 (любая версия) устанавливает только 2 файла в каталоге заголовков C ++
  • WCF, тип возврата интерфейса и известные типы
  • Одна ошибка VS2010? Разрешить привязку не-const ссылки на rvalue БЕЗ ДАЖЕ предупреждение?
  • Давайте будем гением компьютера.