我有一個抽象類,它需要一個委託功能。我將委託傳遞給構造函數。現在我有一個非默認構造函數,我需要從具體類調用抽象類的構造函數,這意味着我需要使用MyBase.New(...)。我在下面包含了一個快速示例。我可以將一個委託從一個後代的構造函數傳遞給一個抽象類的構造函數嗎?
Public MustInherit Class BaseClass
Public Delegate Sub WorkMethod()
Private _Work As WorkMethod
Public Sub New(ByVal Work As WorkMethod)
Me._Work = WorkMethod
End Sub
End Class
Public Class ConcreteClass
Public Sub New()
MyBase.New(AddressOf DoSomethingHere)
End Sub
Public Sub DoSomethingHere()
'Do some work here
End Sub
End Class
我試圖這樣做,但我不斷收到以下錯誤:「隱式引用在建對象調用另一個構造函數時是無效的」。
我不能做我上面想做的事嗎?我最初使用自己的setter方法進行代理設置。但後來我創建了一個欺騙性的API,因爲它確實需要一個方法才能正常工作。
我一直在這太久。這就是我應該如何去做的。我不知道爲什麼我沒有想到它。抱歉浪費大家的時間。什麼是初學者犯的錯誤。 – uriDium 2010-02-15 12:37:19