我對這個概念相當陌生。函數(Of T)(ByVal x爲Integer)究竟是什麼意思?
我看到有一些代碼中的一些功能:
Public Function GetDataObjects(Of Customer)(ByVal dataset as DataSet)
...
End Function
究竟(的客戶)做什麼在這種情況下還是什麼意思?
我對這個概念相當陌生。函數(Of T)(ByVal x爲Integer)究竟是什麼意思?
我看到有一些代碼中的一些功能:
Public Function GetDataObjects(Of Customer)(ByVal dataset as DataSet)
...
End Function
究竟(的客戶)做什麼在這種情況下還是什麼意思?
不定義看起來相當喜歡:
Public Function GetDataObjects(Of T)(ByVal dataset as DataSet) as IList<T>
...
End Function
然後你使用它像
IList(Of Customer) customers = GetDataObjects(Of Customer)(someDataSet)
如果是這樣,客戶提供了一個真正的類型來代替操作中使用T,其中在GetDataObjects函數
沒有看到返回值的函數部分,它似乎意味着函數的返回類型是Customer。
你所看到的是VB.NET處理泛型的方法之一。
約翰
(我可能是錯的。因爲我做了VB.NET工作,它已經有一段時間。)
編輯
這是不是返回類型。 (對於混淆,抱歉)。它僅僅爲函數提供了「客戶」應該被視爲特定類型的信息。客戶成爲定義類型的「參數」。它可以是Integer,String,Object,Decimal或任何其他類型。 (這是所有基本的泛型。)
推測,函數使用這種類型,但簽名不顯示使用。 (一種猜測是,這種類型被臨時標註爲「客戶」,用於確定數據集中應該包含哪些列或如何使用這些列)。
這意味着此方法是通用的。它有一個名爲Customer
的單一通用參數,沒有限制。
你能爲GetDataObjects方法提供更多的代碼,所以我們可以添加更好的解釋嗎?
因此,這只是一種顯示與「As Customer」不同的返回類型的方法嗎? – jlrolin 2010-02-24 19:29:46
@ jlrolin - no。你的代碼是否真的編譯? – user76035 2010-02-24 19:31:40
是的,但我正在看,它絕對不是回報。現在我正在查看VB.net的一些泛型示例...也許我會更好地理解。 – jlrolin 2010-02-24 19:32:57