2014-07-10 143 views
-1

我正在使用一個涉及參數傳遞的過程,並且傳遞的參數是一個變量。因爲我已經明確聲明瞭另一個參數的數據類型,所以我需要爲這個參數做同樣的事情。我將哪些數據類型聲明爲參數,就好像它是一個變量? 謝謝傳遞不同類型的參數

+0

向我們展示代碼。 – ja72

回答

2

一個你正在做什麼和你正在處理的類型的例子本來不錯。您可以實現Overloading提供不同的參數類型:

Friend Function FooBar(n As Integer) As Integer 

Friend Function FooBar(n As Int64) As Integer 

Friend Function FooBar(n As Short) As Integer 

編譯器將選擇哪些相匹配傳遞的數據類型的功能。在內部,他們可以根據傳入的類型做任何事情,然後調用另一個過程來執行任何共同的東西。

您可能需要使用它的類型數量有限。例如Font,PointRectangle可能沒有意義。即使Date也是可疑的,因爲你不能像使用Int或Long一樣對日期進行操作。 String也不太可能需要,因爲只要它包含一個有效的整數或任何東西,您總是可以將其作爲FooBar(CInt(someString))傳遞給它。

你也可以使用一個通用的告訴你逝去的是什麼功能:

Private Function FooBar(Of T)(parm As T) As Integer 

' called as: 
ziggy = FooBar(Of Int32)(n) 
zoey = FooBar(Of String)(str) 

這甚至可能是Private Function FooBar(Of T)(parm As T) As T如果函數返回根據傳遞的參數Type變化。這有很多用途(其中之一是避免傳遞一個參數爲Object),但作爲通過任何類型的通用目的方式,你想它不是一個好主意:內部你可能必須有一個大如果/否則以他們自己的方式處理不同的類型。

從不建議關閉Option Strict,因爲可能會發生各種不需要的類型轉換。