In C # 7 ist es möglich, Tupel als Methodenargumente zu dekonstruieren

9

Zum Beispiel habe ich

%Vor%

Ich möchte so etwas schreiben

%Vor%

Ist das mit einer richtigen Schreibweise möglich?

    
bradgonesurfing 11.01.2017, 11:20
quelle

3 Antworten

8

Sie können es verkürzen zu:

%Vor%

Hoffentlich könnten wir eines Tages die Parameter von einem Tupel auf den Methodenaufruf übertragen:

%Vor%

Aber nicht im Moment.

    
Paulo Morgado 11.01.2017, 11:48
quelle
3

Es gibt zwei Möglichkeiten, Ihre Anfrage zu betrachten, aber keine davon wird in C # 7.0 unterstützt.

  • Man splottet Tupel in Argumente: ruft eine Methode mit einem Tupel auf und lässt die Elemente des Tupels in bestimmte Argumente der Methode fallen. Sie können dies heute manuell tun, indem Sie M(tuple.first, tuple.second) .
  • aufrufen
  • Das andere ist die Dekonstruktion in Lambda-Parametern: Wenn ein Lambda mit einem Parameter aufgerufen wird, dekonstruiere diese Parameter in Elemente und verwende diese Elemente im Lambda-Körper. Sie können dies heute manuell tun, indem Sie ein Lambda als x => { var (first, second) = x; Write(first); Write(second); } definieren.

Es gibt Vorschläge, die im csharplang design repo diskutiert werden.

Julien Couvreur 11.06.2017 19:12
quelle
1

Das nächste, was ich bekommen konnte.

%Vor%     
Skarllot 15.03.2018 20:05
quelle

Tags und Links