Поддерживает ли C # 6.0 ядро ​​.net или ядро ​​.net отвечает более высокой версии C #?

c# .net version core

2116 просмотра

3 ответа

3469 Репутация автора

Я только что установил .net core 1.0 и запустил пример hello world. Мой вопрос:

  1. Есть ли какая-либо связь с .net core 1.0 и его версией C # по умолчанию?
  2. Как узнать версию C # этой установки ядра .net с помощью любых утилит командной строки?
Автор: Hind Forsum Источник Размещён: 18.07.2016 07:12

Ответы (3)


1 плюс

2197 Репутация автора

Разница больше между .Net Coreполной и полной. Это .Net Frameworkозначает, что вы сможете использовать тот же синтаксис, но вы найдете различия в классах, которые вы можете / не можете использовать, а иногда и в способах их использования.

Автор: Itay Podhajcer Размещён: 18.07.2016 07:18

3 плюса

1142131 Репутация автора

Сам язык, как правило, не привязан к конкретной среде выполнения / фреймворку, хотя для некоторых языковых функций требуются функции фреймворка. (Например, интерполированные строки немного более гибки в .NET 4.6, чем в .NET 2.0 из-за наличия FormattableString.) Однако следует учитывать две вещи:

  • Версия компилятора C #, поддерживаемая установленным вами SDK ( dotnet cli)
  • Версия пакетов компилятора C #, поддерживаемая определенной версией фреймворка

SDK поддерживает C # 6 из коробки. Я лично ожидал бы, что версия пакетов Roslyn для C # 7 также будет поддерживать .NET Core (например, таргетинг netstandard1.5), поэтому код, который компилирует больше кода во время выполнения, должен подойти в этом направлении. Я не знаю, каков план с точки зрения привязки версий компилятора к версиям SDK - я подозреваю, что это станет более ясным, когда переход с project.json на msbuild будет завершен.

Я не знаю какого-либо способа определить, какую языковую версию конкретный SDK поддерживает из коробки - было бы достаточно легко придумать последовательность небольших классов, которые используют определенные языковые функции, и, конечно же, посмотреть, скомпилируются ли они. Сложнее было бы придумать код, который собирается с несколькими версиями, но дает разные результаты; Есть способы сделать это между последовательными языковыми версиями (по крайней мере, 2-3, 3-4, 4-5 ... не уверен, примерно 5-6), но они немного более запутанные.

Автор: Jon Skeet Размещён: 18.07.2016 07:19

4 плюса

19238 Репутация автора

Решение

.NET Core 1.0 поставляется с C # 6. Вы можете увидеть это в ссылках:

введите описание изображения здесь

Microsoft.CodeAnalysis* являются пакетами NuGet для компилятора C #. Версии 1.x соответствуют C # 6, а 2.x (в настоящее время в бета-версии) - C # 7.

Вы также можете увидеть эту зависимость от NuGet: Microsoft.NETCore.App .

Когда выйдет C # 7, возможно, будет возможно использовать новый компилятор, добавив его пакет в проект .NET Core.

Автор: Eli Arbel Размещён: 18.07.2016 07:34
Вопросы из категории :
32x32