Kann ich in C # eine Variable vom Typ Objekt in eine Variable vom Typ T umwandeln, wobei T in einer Typvariablen definiert ist?
Type
Variable haben, können Sie mithilfe der Reflektion eine Instanz dieses Typs erstellen. Anschließend können Sie eine generische Methode verwenden, um den gewünschten Typ zurückzugeben, indem Sie ihn aus einem Parameter dieses Typs ableiten. Leider hat jede Reflektionsmethode, die eine Instanz eines Typs erstellt, einen Rückgabetyp von object
, sodass auch Ihre generische CastByExample
Methode verwendet wird object
. Es gibt also wirklich keine Möglichkeit, dies zu tun, und selbst wenn dies der Fall wäre, was würden Sie mit dem neu gegossenen Objekt tun? Sie konnten seine Methoden oder irgendetwas nicht verwenden, weil Sie seinen Typ nicht kennen.
object
oder verwenden dynamic
. Wenn Sie externe Module dynamisch laden möchten, können Sie die Klassen eine gemeinsame Schnittstelle verwenden lassen und das Objekt in diese umwandeln. Wenn Sie den Code von Drittanbietern nicht steuern, erstellen Sie kleine Wrapper und implementieren Sie die Schnittstelle darauf.