gpt4 book ai didi

vb.net - 我可以将委托(delegate)从后代的构造函数传递到抽象类的构造函数吗?

转载 作者:行者123 更新时间:2023-12-02 07:53:34 25 4
gpt4 key购买 nike

我有一个抽象类,它需要委托(delegate)才能运行。我将委托(delegate)传递给构造函数。现在我有了一个非默认构造函数,我需要从具体类调用抽象类的构造函数,这意味着我需要使用 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 方法中设置了委托(delegate)。但是后来我创建了一个欺骗性的 API,因为它确实需要指向一个方法才能正常工作。

最佳答案

您不能传递属于ConcreteClass 的东西,因为在调用基类的构造函数时该对象仍在构造中。因此当时不能使用。

在基础上添加一个抽象方法听起来更合理。

关于vb.net - 我可以将委托(delegate)从后代的构造函数传递到抽象类的构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com