Ich möchte eine generische Typ-Konverter-Funktion an eine Methode senden, aber ich kann nicht herausfinden, wie es geht.Wie kann ich eine Funktion mit einem generischen Typparameter übergeben?
Hier ungültige Syntax, die erklärt, was ich erreichen möge, das Problem, das ich nicht wissen, ist, wie der generischen Typen angeben zusammen mit meiner func:
public void SomeUtility(Func<T><object,T> converter)
{
var myType = converter<MyType>("foo");
}
bearbeiten (siehe auch meine Diskussion in den Kommentaren mit Lawrence): mit dem „generic Wandler“ ich meinte wurde ich in einem Konverter passieren mag, die einen starken Typen <T> (nicht Objekt) umwandeln können, so in meiner Methode die nächste Zeile sein könnte:
var myOtherType = converter<MyOtherType>("foo");
Der Delegierte Ich mag es, p Esel als ein Parameter wie folgt aussehen würde:
private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
Dies ist mehr eine Syntax/C# Exploration nun, Dinge zu erledigen ich wahrscheinlich stattdessen eine Schnittstelle verwenden, aber ich hoffe, dass dies möglich ist, mit einem zu erreichen Funktion/Delegierter.
Ist die Tatsache, dass Sie einen Typ innerhalb des Methodenkörpers angegeben haben, von Bedeutung? Bedeuten Sie, dass diese Methode möglicherweise Conversions für mehrere Typen vornehmen muss und nicht für einen bestimmten Typ, der vom Aufrufer definiert wird? –
Ja, das habe ich versucht, als "generischen Typkonverter" auszudrücken, also könnte die nächste Zeile var sein myOtherType = converter ("foo"); –
joeriks
Ok - dann denke ich, dass du meine Antwort nützlich finden wirst :) –