Ich implementiere jetzt eine Funktion Register()
, die andere Funktion ApiReturnFactory()
ins Innere ruft.C# -Funktion, die Instanz mit unbekanntem generischen Typ zurückgibt
public ???? Register(string username)
{
var result = new AccountProcess().CreateAccount(username);
return ApiReturnFactory.CreateInstance(result);
}
new AccountProcess().CreateAccount(username)
gibt mir ein Objekt wie obj<WhateverType>
.
ApiReturnFactory.CreateInstance(obj)
gibt mir ein Objekt wie obj2<SameTypeWithWhateverType>
zurück.
Meine Frage ist der Compiler bereits wissen, haben, welche Art ich in ApiReturnFactory.CreateInstance(obj)
(IntelliSense tun) zurück, aber was soll ich in den Rückgabetyp ????
von Register(string username)
angeben?
Ich möchte nicht einen generischen Typ für obj
wie obj<string>
, dies ist nicht sinnvoll, da der generische Typ möglicherweise nicht immer eine Zeichenfolge sein. Was ich will ist etwas wie obj<T>
.
Vielen Dank im Voraus.
haben Sie bei 'dynamic' Rückgabetyp geschaut? – Mauro
"Da der generische Typ möglicherweise nicht immer eine Zeichenkette ist" - entweder ist dies falsch oder Ihr Codebeispiel fehlt etwas. 'result' muss einen klar definierten Typ haben, der zur Kompilierzeit bekannt ist. Wenn es * ist * dann ist der Typ fest und kann eingefügt werden. Wenn dies nicht der Fall ist, müssen andere Generika innerhalb der Funktion verwendet werden, die Sie nicht anzeigen. –
Können Sie genaue Signaturen für CreateAccount- und CreateInstance-Methoden bereitstellen? – oryol