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?
Réponses
Trop de publicités?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)
etcase 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