Можно ли использовать дополнительные параметры в коде, предназначающемся для.NET 3.5?

Вот очень хорошая статья об этой теме:

http://mattberseth.com/blog/2008/08/when_is_it_safe_to_modify_the.html

32
задан Peter Mortensen 15 January 2017 в 17:36
поделиться

5 ответов

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

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

25
ответ дан 27 November 2019 в 20:49
поделиться

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

0
ответ дан 27 November 2019 в 20:49
поделиться

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

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

2
ответ дан 27 November 2019 в 20:49
поделиться

VS 2010 поддерживает опциональные параметры в C# для решений .NET 3.5. Однако есть одна оговорка: компилятор командной строки будет сообщать об ошибках.

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

13
ответ дан 27 November 2019 в 20:49
поделиться

Как и Jon Skeet, я получал "Функция 'optional parameter' не может быть использована, потому что она не является частью спецификации языка 3.0 C#". Однако в RTM версии Visual Studio вы можете выбрать версию языка "по умолчанию" в Project Properties->Build->Advanced. Это заставило его работать для меня.

5
ответ дан 27 November 2019 в 20:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: