Zusätzlich zu den vorherigen Antworten bringt C # 7 Tupel vom Werttyp, im Gegensatz zu System.Tuple
einem Referenztyp, und bietet auch eine verbesserte Semantik.
Sie können sie weiterhin unbenannt lassen und die folgende .Item*
Syntax verwenden:
(string, string, int) getPerson()
{
return ("John", "Doe", 42);
}
var person = getPerson();
person.Item1; //John
person.Item2; //Doe
person.Item3; //42
Aber was an dieser neuen Funktion wirklich mächtig ist, ist die Fähigkeit, Tupel benannt zu haben. Also könnten wir das Obige wie folgt umschreiben:
(string FirstName, string LastName, int Age) getPerson()
{
return ("John", "Doe", 42);
}
var person = getPerson();
person.FirstName; //John
person.LastName; //Doe
person.Age; //42
Destrukturierung wird ebenfalls unterstützt:
(string firstName, string lastName, int age) = getPerson()