Wie kann ich mehr als einen Typ in C# -Funktion wie ich String und Datentabelle zurückgeben möchten?zurückgeben mehr als eine Ausgabe auf C#
Antwort
Sie können Ihre eigene Klasse zu verwenden als Rückgabetyp definieren:
class MyReturnType
{
public string String { get; set; }
public DataTable Table { get; set; }
}
und geben eine Instanz davon. Sie könnten ein Tupel verwenden, aber es ist oft besser, aussagekräftige Typ- und Eigenschaftsnamen zu haben, besonders wenn jemand anderes an der Software arbeitet.
Oder Sie könnten einen out
Parameter für die Funktion verwenden.
Der Weg hängt davon ab, was für Ihre Situation geeignet ist. Wenn die Zeichenfolge und die DataTable zwei Teile derselben Sache sind, macht eine Klasse Sinn. Wenn die Zeichenfolge für eine Fehlernachricht beim Erstellen der DataTable verwendet wird, ist ein out-Parameter möglicherweise besser geeignet.
Die einfachste Antwort ist die Verwendung der Eigenschaft TableName
der DataTable.
Die allgemeinere Antwort ist, eine Tuple<DataTable, string>
zu verwenden oder eine Klasse oder eine Struktur zu schreiben.
Verwenden Sie ein Tupel als Rückgabe.
einen out-Parameter verwenden:
public string Function(out DataTable result)
es so Aufruf:
DataTable table;
string result = Function(out table);
Verwendung ref oder Parameter aus
ref Parameter: erfordert initilization vom Anrufer Methode.
public string ReturnName(ref int position)
{
position = 1;
return "Temp"
}
public string GetName()
{
int i =0;
string name = ReturnName(ref i);
// you will get name as Temp and i =1
}
// best use out parameter is the TryGetXXX patternn in various places like (int.TryParse,DateTime.TryParse)
int i ;
bool isValid = int.TryParse("123s",out i);
- 1. kann nicht mehr als ein SQL-Zeilendaten zurückgeben # mit c
- 2. Mehr als eine Ergebnismenge mit T-SQL zurückgeben
- 3. Unterstützt mybatis gespeicherte Prozeduren, die mehr als 1 Ergebnismenge zurückgeben?
- 4. Bildwähler mehr als eine
- 5. Mehr als ein Ergebnis in Modal Winkel zurückgeben js
- 6. Kann eine Objective-c-Schnittstelle mehr als eine Implementierung haben?
- 7. Kann Jquery Ajax Post mehr als 1 Variable zurückgeben?
- 8. C# JArray Ausgabe als nicht
- 9. zurückgeben mehr als 1 mysql einträge mit bind_result
- 10. Ausgabe mehr als eine NativeScript Anwendung auf demselben Android-Gerät läuft mit tns läuft
- 11. Schienen - Ausgabe von Benutzereingaben mit Absatz zurückgeben?
- 12. Wie html5 Audio/Video als Ausgabe innerhalb angular Filter zurückgeben
- 13. Wie man auf mehr als eine Datenbanktabelle auf aspx Seite
- 14. Iterieren über mehr als eine Seq. Container in C++ 11
- 15. Mysqldump mehr als eine Tabelle?
- 16. C# So rufen Sie mit mehr als einem Parameter auf
- 17. auf mehr als ein Anwendungsserver
- 18. Abfrage zurück mehr als eine Zeile?
- 19. ArrayAdapter für mehr als eine Klassenart
- 20. auf mehr als einem Parameter Joining
- 21. C#: Erweitern von mehr als 1 Klasse
- 22. Basierend auf einer C# Datetime, Ausgabe des Monats als MM?
- 23. QTcpServer ruft mehr als eine Adresse ab
- 24. Wie kann ich leicht auf mehr als eine Eigenschaft filtern?
- 25. Einen Verweis auf eine Kopie aus einer C++ - Methode zurückgeben
- 26. Teilansicht als JsonResult zurückgeben
- 27. Ausgabe von mehr Zahlen als 8-Bit in Binärzahlen
- 28. Ausgabe während mehr als 1 Artikel in Mysql von Scrapy
- 29. Eine lokale Variable in C++ zurückgeben
- 30. CSV-Datei als Datensatz zurückgeben
Duplizieren: http://stackoverflow.com/questions/3130372/c-function-returning-two-values –