Falls Du mit Deiner Frage darauf zielst, ob es möglich ist, in C# eine Methode oder einen Ausdruck so zu definieren, dass der (Rückgabe-)Wert für den Compiler verwertbar (und damit ohne den Typ im Cast oder einem Aufruf einer generischen Methode explizit angeben zu müssen) dem entspricht, was eine Variable oder ein Methodenparameter vom Typ Type aktuell zur Laufzeit repräsentiert: Nein, das geht nicht.
Ich sehe hier keinen Zusammenhang zur Frage, aber vielleicht hast Du sie anders verstanden als ich. user1 geht es nach meiner Auffassung um einen Cast, nicht um die Erzeugung einer Instanz. Und er will anscheinend vermeiden, den Typ beim Cast explizit hinschreiben zu müssen. Das kann er mit Deiner Methode nur, wenn er ihn stattdessen als Typparameter explizit angibt (type interference funktioniert hier nicht, jedenfalls meckert mein Compiler).
Übrigens: Damit das ganze überhaupt kompiliert, mußt Du einen Cast auf T einbauen...