Могу ли я использовать все функции C # 4.0 в проекте, нацеленном на .Net 3.5? - PullRequest
5 голосов
/ 19 августа 2010

Среда разработки: - VS2010 - .Net Framework 4.0, 3.5, 2.0

Среды организации и производства: - .Net Framework 3.5, 2.0

Проект, над которым я работаю, ориентирован.Net Framework 3.5.И сегодня я использовал опциональную функцию параметров, которая является новой для C # 4, в этом проекте, и она работала нормально.Я думаю, что VS2010 использует компилятор C # 4 и компилирует метод с необязательными параметрами для соответствующих перегруженных методов в IL.

Я хочу знать, смогу ли я использовать все новые функции C # 4.

Ответы [ 2 ]

7 голосов
/ 19 августа 2010

Вы не можете использовать функцию dynamic. Это зависит от времени выполнения C # и DLR DLL, которые доступны только в версии 4.0 .NET Framework. Версии DLR доступны для версии 3.5, но я не думаю, что они совместимы с той, которая требуется компилятору C #.

Кроме того, вы не можете использовать NoPIA / Embedded Interop Types в сценарии с нисходящим таргетингом. Эта функция требует поддержки CLR, которая была добавлена ​​в 4.0.

Что хорошего в подавлении таргетинга в Visual Studio 2010, хотя вы не должны знать обо всех ограничениях. Если в ваших проектах задан целевой уровень 3.5 и вы используете несовместимую функцию, Visual Studio выдаст ошибку.

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

Я столкнулся с этим пару недель назад на самом деле.Я использовал необязательные параметры, хотя проект нацелен на .net 3.5.Вы должны быть очень осторожны с этим, потому что если вы устанавливаете приложение на компьютер, на котором установлена ​​только среда выполнения .net 3.5, ваша программа может не работать.В моем случае я использовал необязательные параметры, а на сервере ночной сборки было установлено только 3.5, поэтому сборка не удалась.

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