Ответ 1
С VS2010 RC я смог создать приложение .NET 3.5, которое использует необязательные параметры в С#.
Итак, да, это все о синтаксическом сахаре.
Я хочу написать библиотеку, которая использует новую функцию дополнительных параметров для С# 4.0, но я хочу настроить ее на версию версии 3.5. Возможно ли это?
Являются ли дополнительные параметры синтаксическим сахаром так же, как и методы расширения?
С VS2010 RC я смог создать приложение .NET 3.5, которое использует необязательные параметры в С#.
Итак, да, это все о синтаксическом сахаре.
VS 2010 поддерживает дополнительные параметры в С# для решений .NET 3.5. Однако одно из предостережений заключается в том, что компилятор командной строки сообщает об ошибках.
Итак, если у вас есть автоматические сборки в запуске, - используя NANT или что-то еще, используя компилятор командной строки - ваши сборки не сработают.
Как и Jon Skeet, я получал необязательный параметр "Feature", который нельзя использовать, потому что он не является частью спецификации языка 3.0 С# ". Однако в RTM-версии Visual Studio вы можете выбрать версию языка для" по умолчанию "в" Свойства проекта "- > " Сборка- > Дополнительно". Это заставило меня работать для меня.
Вы можете использовать необязательные и именованные параметры в целевой структуре предыдущей версии, поскольку сборки сборки строятся в среде разработки для v4 (например, VS2010). Но вы должны знать о компиляции или публикации веб-сайтов во время выполнения, в этом случае будет использован компилятор целевой структуры. И поскольку компиляторы старых фреймворков не понимают синтаксис необязательных и именованных параметров, это приведет к ошибкам компилятора.
У меня нет VS2010, установленного здесь для проверки, но я считаю, что это будет исключительно языковой функцией и поэтому должно использоваться, независимо от того, какова цель.
Изменить: если посмотреть на link (и несколько других), то, по-видимому, необязательные параметры компилируются в аргументы метода с помощью [opt] атрибут в il. Я не знаю, существовал ли этот параметр в предыдущих версиях clr, но все же я предполагал, что это так.
Перейдите к свойствам проекта → вкладка "Создать" → нажмите кнопку "Дополнительно" → установите версию языка для "по умолчанию" → сохранить → быть счастливой;)
VB.NET имеет необязательные параметры, если вы хотите использовать необязательные параметры в .NET 3.5.