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