VB 2010 (32)泛型方法
? ? 前面通過例子介紹了如何使用類型參數(shù)(例如T或V)來聲明方法。這些泛型方法的例子都是在泛型類型(比如類、結(jié)構(gòu)、接口)中實現(xiàn)的。
? ? 在普通類、結(jié)構(gòu)、接口和模塊中也可以創(chuàng)建泛型方法。這時,類型參數(shù)不是在類、結(jié)構(gòu)或者接口上指定,而是直接在方法上指定。
? ? 例如,聲明一個判定對象是否相等的泛型方法:
? ? ? ? ?Public Module Comparisons
? ? ? ? ? ? ? ?Public hinction AreEqual(Of T) (ByVal a As T, ByVal b As T) As Boolean
? ? ? ? ? ? ? Return a.Equals(b}
? ? ? ? End Function
? 在這個例子中,AreEqual方法是在模塊中定義的——當(dāng)然也可以在類和接口中定義口AreEqual方法接受兩組參數(shù)。第一組參數(shù)是類型參數(shù)T。第二組參數(shù)是方法接受的普通參數(shù),其類型由類型參數(shù)T定義。
? ? 與泛型類一樣,在泛型方法中編寫代碼時,類型參數(shù)被當(dāng)做System.Object類型處理。這嚴(yán)重限制了使用類型參數(shù)聲明的參數(shù)和變量的功能。也就是說,只能進(jìn)行賦值和調(diào)用所有System.Object變量的幾個方法。
? ??? 與泛型類型一樣,泛型方法可以接受多個類型參數(shù):
? ? ? ? Public Class Comparisons
? ? ? ? ? ? ? Public Function AreEqual(Of T, R) (ByVal a As Integer, ByVal b As T) As R
? ? ? ? ? ? ? ? ? ? ? ' implement code here
? ? ? ? ? ? ?End Function
? ? ? End Class
? ?在這個例子中,該方法在類中而不是在模塊中定義a方法接受兩個類型參數(shù)T和R。方法的第一個參數(shù)是普通的類型,第二個參數(shù)的類型是T,返回類型被設(shè)定為R。這個例子展示了如何在方法參數(shù)列表和返回類型中同時使用普通類型和泛型類型參數(shù),以及如何擴(kuò)展方法代碼。
?
總結(jié)
以上是生活随笔為你收集整理的VB 2010 (32)泛型方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SHELL 脚本小技巧
- 下一篇: 【资源下载】PCtoLCD2002 下载