D是一个字典,其输入值为T型VB.NET - 如何在泛型类型的实例上调用实例函数委托?
我在试图做的是有一个像“Serializer”一样的代理,可以在T的实例上调用,比如“Entry.Value”下面。
请参阅下面的“return Entry ...”一行,以便我的一厢情愿。
这可能吗?
如果是这样,这是一个坏主意吗?
Public Delegate Function Serializer(Of T)() As Byte()
Function SerializeDictionary_String_Object(Of T)(ByRef D As Dictionary(Of String, T), ByVal ObjSerializer As Serializer(Of T)) As Byte()
for each Entry in D
return Entry.Value.ObjSerializer()
exit for
next
End Function
您示例中的ObjSerializer是一个共享(或静态)函数。我需要它是一个实例功能。如果我被迫使用共享函数,那么我将不得不拥有每个序列化函数的共享和实例版本。 – 2010-08-04 14:23:10
我不确定VB语法是什么,但在C#中,您可以使用lambda来实现此目的:SerializeDictionary_String_Object(dict,x => x.Serialize()) - 上面的方法签名不需要更改。 – Josh 2010-08-04 15:44:48