Une nouvelle fonctionnalité en C # 6.0 permet de déclarer une variable dans la méthode TryParse. J'ai du code:
string s = "Hello";
if (int.TryParse(s, out var result))
{
}
Mais je reçois des erreurs de compilation:
Qu'est ce que je fais mal? PS: dans les paramètres du projet, C # 6.0 et .NET Framework 4.6 sont définis.
Je viens de le découvrir par accident, dans vs2017, vous pouvez le faire par souci de concision:
la source
C'est une nouvelle fonctionnalité de C # 7, qui est une fonctionnalité très intéressante souvent utilisée en conjonction avec la correspondance de motifs. Cette fonctionnalité, et bien d'autres, est annoncée dans le blog de l'équipe C # What's New in C # 7.0 .
Ce que l'équipe essaie de réaliser ici, c'est un code plus fluide. Vous souvenez-vous de certains cas où la liste des variables out devient extrêmement longue sans aucune utilité? Juste un exemple rapide:
Vous voyez le problème? Il est inutile d'avoir toutes ces variables out assis là à ne rien faire. Le nombre de lignes peut être réduit de moitié en utilisant C # 7:
Non seulement le nombre de lignes est minimisé, mais il n'y a pas non plus de liste inutile de variables dans la portée où vous ne voulez pas les avoir. Cela vous empêche d'utiliser une variable que vous n'aviez pas l'intention d'utiliser, mais qui vous est désormais visible.
Cette fonctionnalité est également utile avec la correspondance de modèle dans les
switch
instructions, comme dans ce code (qui a un comportement différent du code ci-dessus!):la source