2016-07-18 1 views
3

Я только что установил .net core 1.0 и запустил образец мира привет. Мой вопрос:Поддерживает ли C# 6.0 поддержку ядра .net или .net для более высокой версии C#?

  1. Есть ли какие-либо отношения с .net core 1.0 и его версией по умолчанию C#?
  2. Как я могу узнать версию C# этой установки ядра .net с помощью любых утилит командной строки?

ответ

0

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

+0

Хорошо, но вопрос не об этом. – boj

2

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

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

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

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

+1

'autoconf'-стиль обнаружения функции для компилятора C# ;-) –

3

.NET 1.0 Основные поставляется с C# 6. Вы можете видеть, что в ссылках:

enter image description here

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

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

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

Смежные вопросы