未指定类型的返回类型
问题描述:
是否可以创建一个返回未指定类型的泛型的函数?未指定类型的返回类型
Public Function Create(ByVal type As Type) As DeserializationHelper(Of)
Dim DynamicHelper = GetType(DeserializationHelper(Of)).MakeGenericType(type)
Return Activator.CreateInstance(DynamicHelper)
End Function
一切都在这里工作,除了强类型的返回值。我可以将它作为一个对象,一个非泛型接口或一个非泛型基类返回,但是我正在试图制作一个非常流畅的流式API风格的API。
我试图创建语法如下:
Dim Loader As New XLoader(parentContainer, Map)
Dim MyCreature As Creature = Loader.Create(GetType(Creature)).From(xml.<Creature>)
...是的,我知道有内置的XML序列化 - 我希望他们为我工作,但我需要更多的控制。 ;)
如果我将这部分移到不同的项目中,并将其写入C#(然后从VB.NET项目中使用它),C#的Dynamic关键字能帮助我吗?
谢谢。 :)
答
不与VB
专家,但希望这将帮助:
Public Function Create(Of TResult)() As DeserializationHelper(Of TResult)
Return Activator.CreateInstance(Of DeserializationHelper(Of TResult))()
End Function
+1:死的。我不知道该函数本身可能是通用的 - 真棒。 – 2011-06-12 23:20:44