Gebe 2 Zeichenfolgen mit Funktion in C # zurück [duplizieren]

7

Ich habe eine Funktion, wo ich 2 Werte zurückgeben möchte? Ist das möglich?

Dies ist mein Code, aber es scheint nicht so zu sein, dass ich 2 Werte zurückgeben möchte

%Vor%

Ich habe gegoogelt, aber ich habe nicht gefunden, was ich brauche.

    
Kevin 12.05.2013, 07:06
quelle

4 Antworten

14

Einige Optionen:

  • Verwenden Sie einen out -Parameter:

    %Vor%

    Gebe einen Wert zurück und setze den Parameter out ( x in diesem Fall) auf einen anderen Wert; Der aufrufende Code muss ebenfalls ein Argument mit out angeben, und nachdem der Aufruf abgeschlossen ist, kann der Aufrufer den in der Methode festgelegten Wert sehen.

    (Es ist nicht klar, warum Sie überhaupt Parameter akzeptieren; Sie scheinen sie nicht wirklich zu benutzen.)

  • Gebe ein Tuple<string, string>

  • zurück
  • Erstellen Sie einen neuen Typ, um die beiden Werte zusammen zu speichern, vorausgesetzt, es handelt sich um eine sinnvolle Kombination. Dies ist definitiv eine gute Wahl, wenn die Werte in einer Weise verwandt sind, die Sie anderswo verwenden. Anstatt beispielsweise eine Methode zu verwenden, die eine Zeichenfolge für die Farbe einer Karte und eine für den Wert zurückgibt, erstellen Sie einen PlayingCard -Typ.
  • Refaktorieren Sie Ihren Code in zwei Methodenaufrufe, von denen jeder einen einzelnen Wert zurückgibt

Es ist überhaupt nicht klar, was Ihr Code versucht - der Name der Methode ist nicht klar und Sie verwenden die Parameter nicht. Wenn Sie geklärt haben, was die Methode zu erreichen versucht - für Sie selbst genauso wie für uns -, wird die Antwort vielleicht deutlicher.

Ich würde Sie auch ermutigen, gegebenenfalls lokale Variablen zu verwenden. Ich vermute, dass generatedCard eine lokale Variable anstelle der (vermutlich) aktuellen Instanzvariable sein sollte.

    
Jon Skeet 12.05.2013, 07:09
quelle
10

Sie können Tupel zurückgeben: Tuple<string, string>

%Vor%     
Veronica_Awful 12.05.2013 07:10
quelle
4

Eine der möglichen Optionen:

Erstellen Sie eine Struktur wie folgt:

%Vor%

Dann benutze es in deiner Funktion so:

%Vor%     
Amit Mittal 12.05.2013 07:17
quelle
2

Ich denke, dass Sie String-Array verwenden können ...

Der zweite Weg besteht darin, eine Struktur mit zwei String-Werten oder eine Klasse mit zwei String-Membern zu verwenden,

Sehen Sie sich hier an:

%Vor%

Viel Glück.

    
Mohsen Bahman Poor 12.05.2013 07:31
quelle

Tags und Links