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 beispiel

    public T Test<T>(T a, string b)
            {
                a = b;
                return b;
            }
    

    Die fehlermeldung lautet
    Eine implizierte Konvertierung vom Typ String in T nicht möglich

    Kann 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


Anmelden zum Antworten