我想知道是否可以定义一个以上类型的变量/属性。
假设我想要一个属性TextWebControl
,它是一个WebControl
,并且也实现了Web.UI.ITextControl
(例如,像TextBox或Label)。但是我不想强制要求它是一个TextBox或Label,而只有一个可以继承自WebControl并实现ITextControl的控件,以便它也可以与.Net-Framework的将来版本中添加的控件一起使用。
.Net框架4.0
编辑:我重新标记了问题,并添加了VB.Net,因为这是我的默认语言。通常,对我来说,理解C#也没问题,但是我必须承认,没有经验就很难将通用的东西翻译成VB.Net,而且在C#中比在VB中有更好的记录。因此,我将感激(并且接受)ITextControl / WebControl的VB.net泛型类型的工作示例。
根据马克的回答,我知道我需要一个通用类。但是如何在SomeClass
中实例化它?这不会编译:
Class SomeClass
Public Property info As InfoControl(Of WebControl, ITextControl)
End Class
Public Class InfoControl(Of T As {WebControl, ITextControl})
End Class
非常感谢你。
最佳答案
仅在仿制药内部,即
void SomeMethod<T>(T whatever) where T : WebControl, ITextControl {...}
否则,您将不得不在它们之间进行选择,或者具有2个变量。