Rückgabetyp bei Generischer methode
-
hallo
ich habe ein kleines problem
und zwar hab ich eine generische methode mir geschrieben die von anderen methoden aufgerufen wird
diese methode soll verschiedene typen zurückgeben (je nach dem von welcher methode sie aufgerufen wird)
hier hab ich mal ein beispielpublic T Test<T>(T a, string b) { a = b; return b; }
Die fehlermeldung lautet
Eine implizierte Konvertierung vom Typ String in T nicht möglichKann mir da wer weiterhelfen??
-
Und was verstehst du daran jetzt nicht? Ist doch klar, dass diese Zuweisung nicht geht.
-
gibts eine Möglichkeit den string b zurück zu geben?
-
Nein, du musst ein objekt vom Typ T zurückgeben.
-
Das Problem bei der Methode ist einfach, dass du anscheinend erwartest, dass T ein string ist. Du gibst immer einen string zurück (egal was T ist), und "a=b;" klappt auch nur, wenn a ein string ist....
Wie wärs denn, wenn du uns verrätst, was die Funktion so machen soll...?
-
Warum schreibst du nicht:
public string Test<T>(string a, string b) { a = b; return b; }
diese methode soll verschiedene typen zurückgeben (je nach dem von welcher methode sie aufgerufen wird)
Ich bin mir nicht sicher, aber es klingt als möchtest du ein String-Objekt in z.B.: einen Integer oder DateTime-Objekt konvertieren? Wenn ja nimm lieber System.Convert.To... (setzte für ... den Typ ein in den du konvertieren möchtest - vorausgesetzt er ist ein Standardtyp).
Mit freundlichen Grüßen
Rhombicosidodecahedron