49 votes

Exigences de la version .NET / CLR / Visual Studio C # 7

Quelle est la configuration minimale requise pour .NET Framework et CLR pour exécuter C # 7? De plus, ai-je besoin de VS 2017 pour compiler le C # 7?

99voto

dmeglio Points 2575

Vous n'avez PAS besoin de cible .NET de 4,6 et au-dessus, c'est incorrect. Pour l'utilisation de n-Uplets, vous avez besoin du Système.ValueTuple package NuGet. À droite sur https://www.nuget.org/packages/System.ValueTuple/ vous pouvez le voir, il dit qu'il prend en charge de 4,5 et au-dessus, et en fait, il prend en charge 4.0 et ci-dessus. Et si vous voulez obtenir un fou, si vous créez votre propre System.ValueTuple classe qui fait exactement ce que le paquet n', il va travailler sur le retour .NET 3.5 et probablement plus trop. Pour la "Tâche", semblables à des types de, vous avez également besoin d'un package NuGet, https://www.nuget.org/packages/System.Threading.Tasks.Extensions/. Ce package fonctionne aussi sur .NET 4.5 et versions plus récentes selon sa documentation.

D'autres C# 7 tout fonctionne sur .NET 2 et au-dessus, car ils sont tout sucre syntaxique. Par exemple, j'ai juste écrit ce qui suit dans .NET 2.0 et il renvoie correctement:

static void Main(string[] args)
{
    string test = null;
    string d = test ?? throw new ApplicationException("test");
}

De même, int.TryParse("123", out int i); fonctionne très bien .NET 2.0.

Je n'ai pas tester chaque C#7, mais en général, à l'exception des n-Uplets (et de leurs caractéristiques, comme la déconstruction), il faut travailler dans .NET 2.0 et au-dessus, comme la plupart de c'est juste du sucre syntaxique. Cela étant dit, oui, vous avez besoin VS2017 pour compiler en C#7. Je suis sûr qu'à un certain moment, d'autres compilateurs C#7, mais pas aujourd'hui.

J'ai confirmé le travail .NET 2.0:

  • Binaire Littéraux
  • Chiffres Séparateurs
  • Inline out paramètres
  • À l'aide de _ pour ignorer les paramètres de sortie
  • Les fonctions locales
  • Type de pattern matching if (obj is int i) et case int i:
  • Constante de filtrage if (i is 2)
  • Var pattern matching if (i is var j)
  • Ref retourne
  • Jeter les expressions
  • L'Expression des corps des getters et les setters
  • L'Expression des corps des constructeurs et des finaliseurs

5voto

SerG Points 127

Pour utiliser toute la puissance de C # 7 prête à l'emploi (sans faire référence aux packages NuGet, etc.), vous avez besoin de VS 2017 et de .NET 4.7 comme infrastructure cible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X