Я только начинаю изучать C# и его связь с .NET. Если я хочу воспользоваться последними языковыми соглашениями на языке C#, но хотел бы настроить таргетинг, скажем, платформу .NET 2.0, могу ли я это сделать? Или использование последнего C# означает, что мне нужно использовать последнюю версию .NET?Являются ли версии C# и .NET зависимыми друг от друга?
ответ
C# как язык не зависит от .NET Framework.
Например: методы расширения - это функция, выпущенная с C# 3.0, которая поставляется вместе с .Net 2.0. Методы расширения зависит от ExtensionAttribute, который живет в «mscorlib.dll», который был добавлен в .Net 3.5. Но вы можете использовать методы расширения в .Net 2.0, учитывая, что вы предоставляете свой собственный ExtensionAttribute
в своей библиотеке. Это не должно быть в mscorlib. См. this question for more info.
Как известно, async-await является новым в C# 5.0, который был выпущен с .Net 4.5, но we can use async-await in .Net 4.0 itself.
Sameway, большинство зависимостей языковых функций могут быть определены в вашей собственной сборке, чтобы заставить ее работать. Поэтому он не нуждается в конкретной версии .Net framework.
Если вы посмотрите на .NET framework как комбинацию «CLR + Managed libraries», проще объяснить, почему новые функции (такие как async/await) выходят с новыми версиями фреймворка. –
Значит ли это, что любая новая функция может быть перенесена обратно в .NET 2.0, предполагая, что ссылки на соответствующие библиотеки? Я предполагаю, что версия Visual Studio имеет значение в некоторых случаях, когда она распознает новые языковые соглашения (например, значения по умолчанию для авто-свойства). – tralston
@tralston Да. Почти ничего не может быть сделано с .Net 2.0, если для этих функций не требуется поддержка CLR. Новая визуальная поддержка студии требуется для понимания новых ключевых слов и функций, но вы можете работать без визуальной студии (только с компилятором командной строки), если у вас есть терпение :) –
вы можете использовать возможности визуальных изданий самого последней студии (2013, 2015), но код должен быть в соответствии с спецификациями 2.0, чтобы обеспечить компиляцию в .NET 2.0 (старые версии)
Да, C# и .Net версию зависят. Согласно моему пониманию, C# - это язык программирования, который работает с использованием технологии .Net.
Обучение C# означает изучение базового синтаксиса, который почти одинаковый во всех версиях .Net. Итак, для изучения C#, не имеет значения, какую версию .Net вы должны настроить. Различные версии .Net добавляют некоторые новые функции или функциональные возможности. В любом случае лучше понять последнюю версию .Net, которая поможет вам в проектах.
Вы можете с радостью писать приложения на C#, не используя .net вообще – Sayse
Да ... правда ... Но изучая его лучше знать основы .net na? –
Вы можете использовать функции C# из более ранних версий с более поздними версиями .Net, например, вы можете использовать любую функцию C# 2.0 с .Net 3.5, это не работает в обратном направлении, поэтому вы не можете использовать .Net 3.5 с компилятором C# 2.0.
Для получения более подробной информации см: https://msdn.microsoft.com/en-us/library/ff602939(v=vs.110).aspx
C# 6.0 доступен в .NET 5.0. Это зависит от CLR. C# 4, 4.5 и 4.5.1 используют версию CLR 4.
Да C# зависит от версий .net. Зависимость между ними зависит от особенностей и технологий. См следующей ссылке:
https://msdn.microsoft.com/en-us/library/bb822049%28v=vs.110%29.aspx
- 1. Сделать поля зависимыми друг от друга при сортировке и фильтрации
- 2. Являются ли версии Antlr v4 grammars зависимыми от jar-версий?
- 3. Как сделать 4 прядильщика зависимыми друг от друга значение
- 4. Являются ли запросы ajax зависимыми от браузера?
- 5. Являются ли C двойными, отличными от .NET?
- 6. Разные версии mmx, sse и avx дополняют друг друга или дополняют друг друга?
- 7. Являются ли эти значения зависимыми?
- 8. Почему мой XML-сервисы .NET отличаются друг от друга?
- 9. ASP.NET C#: сборка с различными библиотеками классов, которые нацелены на разные версии .Net и зависят друг от друга друг от друга
- 10. Являются ли разные ситуации переопределяющими друг друга? minecraft
- 11. успокаивает get и httpget друг от друга?
- 12. Как проверить, являются ли две строки вращения друг друга?
- 13. Как проверить, являются ли два прямоугольника «друг на друга»
- 14. Являются ли они синонимами, подмножеством друг друга или совершенно разными?
- 15. проверить, являются ли две строки перестановкой друг друга?
- 16. Достижимые вершины друг от друга
- 17. Являются ли определенные комбинации клавиш-событий блокирующими друг друга?
- 18. Проверьте, являются ли типы кортежей подмножествами друг друга
- 19. Попытка проверить, являются ли две строки перестановками друг друга
- 20. Проверка того, являются ли две цифры перестановкой друг друга?
- 21. Разделенные друг от друга боксы и стопки
- 22. Два divs друг от друга
- 23. Являются ли addTransaction и addItem полностью отделенными друг от друга в Google Analytics?
- 24. являются статическими и не статическими перегружает друг друга
- 25. Являются ли сообщения MySQL зависимыми от размера таблицы?
- 26. Алгоритм - Друг друга
- 27. Являются ли функции даты/времени Javascript зависимыми от клиентской машины?
- 28. Являются ли escape-символы в Java зависимыми от платформы?
- 29. может ли два .NET exe вмешиваться друг в друга?
- 30. Является ли скрытие информации и инкапсуляция независимыми друг от друга?
@JustinHarvey, значит ли это, вы не можете целевой C# 6.0 код на .NET 4.5 CLR? Любые ссылки на это требование? Насколько я понимаю, большинство преимуществ C# 6 получены с использованием методов компилятора. – haim770
Я ожидаю, что ситуация для C# 6 будет похожа на C# 5: вы можете скомпилировать C# 5 для запуска на CLR 2.0: многие языковые функции, новые для C# 5, такие как inferrence, были улучшены компилятором. Некоторые другие функции, такие как использование динамики или асинхронизации, требуют новых CLR библиотек, которые недоступны в новейшей версии. – realbart
Для тех из вас, кто задается вопросом, обычно мне не нужно ориентироваться на что-то вроде 2.0, но мой проект - это инструмент, который можно использовать в более ранних системах, таких как XP, поэтому он должен иметь самую широкую аудиторию профилей .NET. – tralston