作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用相同的通用类扩展不同的类?我试过这样的事情:
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)
中的 T
在 C
的上下文中将是 A
。
您希望 TestA()
调用 A
的哪个实例?创建 C
的实例当然不会创建 A
的实例...
B(Of T)
没有在任何地方使用 T
的事实应该是一个警告信号 - 类型是通用的但从不使用它们的通用类型参数通常是有问题的。
如果没有更多细节,很难确切地知道如何帮助您解决实际问题,但是当您还需要从不受您控制的其他类型派生时,您不能像这样添加一个公共(public)基类.
也许 extension methods会有帮助吗?
关于vb.net 使用泛型扩展一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762329/
我是一名优秀的程序员,十分优秀!