gpt4 book ai didi

vb.net 使用泛型扩展一个类

转载 作者:行者123 更新时间:2023-12-02 08:38:41 26 4
gpt4 key购买 nike

是否可以使用相同的通用类扩展不同的类?我试过这样的事情:

Public Class A
Public Sub TestA()
Debug.Print("Test A")
End Sub
End Class

Public Class B(Of T)
Public Sub TestB()
Debug.Print("Test B")
End Sub
End Class

Public Class C
Inherits B(Of A)

Public Sub TestC()
TestA() '**<-- Thows error 'is not declared'**
TestB()
Debug.Print("Test C")
End Sub
End Class

我基本上有一些用户控件,它们派生自 Combobox 或 Textbox,我希望它们都能实现在基类中定义的一些功能(和接口(interface))。在 C++ 中,我会通过多重继承来实现。

最佳答案

is it possible to extend different classes with the same generic class?

泛型不是缺少多重继承的某种“解决方法”,不是。您的类 C 不是从 A 派生的 - 它只是意味着 B(Of T) 中的 TC 的上下文中将是 A

您希望 TestA() 调用 A 的哪个实例?创建 C 的实例当然不会创建 A 的实例...

B(Of T) 没有在任何地方使用 T 的事实应该是一个警告信号 - 类型是通用的但从不使用它们的通用类型参数通常是有问题的。

如果没有更多细节,很难确切地知道如何帮助您解决实际问题,但是当您还需要从不受您控制的其他类型派生时,您不能像这样添加一个公共(public)基类.

也许 extension methods会有帮助吗?

关于vb.net 使用泛型扩展一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762329/

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