2017-03-07 63 views
0

我不知道是否有辦法讓一個類實例接受參數並根據此參數生成結果。如何使類實例接受參數?

這是在VB.net內置類很常見的,但我不知道如何使它自己

Dim myNumbers as new NUMBERS 
myNumbers.First = 1 
myNumbers.Second = 2 
Msgbox(myNumbers(1,2,3,4,5,5).max) 

在上面的代碼myNumber是接受一些數字,並返回最大的一類。

+0

類別不帶參數,方法做;那些看起來像屬性。我們無法看到NUMBERS,所以我們只能猜測出什麼是錯的 – Plutonix

+0

在你的例子中,First和Second是類的屬性,Max是一個函數。閱讀關於類的方面。 – Blackwood

+0

也許你在談論的是具有參數的類構造函數? – user5226582

回答

0

您可以使用Default properties來實現此目的。如果你不想讓它成爲Set -able,你可以將它標記爲ReadOnly,如果你不想返回一個特定的值,只需返回Nothing

返回的東西從屬性:

Default Public ReadOnly Property Calculate(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer 
    Get 
     Dim d As Integer = a * b + c + Me.First 
     DoSomeStuff(d) 
     Return d * Me.Second 
    End Get 
End Property 

返回什麼:

Default Public ReadOnly Property Calculate(ByVal a As Integer, ByVal b As String) As Object 
    Get 
     Dim c As String = DoStuff() 
     DoSomeOtherStuff(a, b, Me.First, Me.Second, c) 
     Return Nothing 
    End Get 
End Property 

用例:

'With return value. 
Dim num As Integer = myNumbers(34, 5, 13) 

'Ignoring return value. 
Dim dummy As Object = myNumbers(64, "Hello World!") 

'Ignoring return value. 
Dim dummy As Object = myNumbers.Calculate(13, "I am text") 

與此唯一背後是你必須做一些與返回的值(例如分配給一個變量)。簡單地做:

myNumbers(64, "Hello World!") 

不起作用。

+0

謝謝Visual..this是genuis – DragonInCresent

+0

@DragonInCresent:很高興能幫到你!祝你的項目好運! –