Un coéquipier m'a dit qu'en C # 7.0, il est possible de renvoyer plusieurs valeurs d'une fonction en mode natif. Quelqu'un peut-il donner un exemple? Merci
Réponses
Trop de publicités?Qu'entendez-vous par nativement?
Effectivement C# 7 dispose d'une nouvelle fonctionnalité qui vous permet de revenir plus d'une valeur à partir d'une méthode grâce à un tuple types et n-uplet de littéraux.
Considérons la fonction suivante:
(string, string, string) MyCoolFunction() // tuple return type
{
//...
return (firstValue, secondValue, thirdValue);
}
Qui peut être utilisée comme ceci:
var values = MyCoolFunction();
var firstValue = values.Item1;
var secondValue = values.Item2;
var thirdValue = values.Item3;
Ou à l'aide de la déconstruction de la syntaxe
(string first, string second, string third) = MyCoolFunction();
//...
var (first, second, third) = MyCoolFunction(); //Implicitly Typed Variables
Prenez le temps de consulter la Documentation, ils ont quelques très bons exemples (cette réponse est l'un sont basés sur eux!).
Vous cherchez des tuples. Ceci est un exemple:
static (int count, double sum) Tally(IEnumerable<double> values)
{
int count = 0;
double sum = 0.0;
foreach (var value in values)
{
count++;
sum += value;
}
return (count, sum);
}
...
var values = ...
var t = Tally(values);
Console.WriteLine($"There are {t.count} values and their sum is {t.sum}");
Exemple volé à http://www.thomaslevesque.com/2016/07/25/tuples-in-c-7/