我在VB.NET中创建了几个简单的函数,这些函数只返回我已经知道的某个类型的控件,例如HtmlInputHidden、Label等。这意味着每个函数都只是为了这个特殊目的而创建的。
我想做的是使用泛型将所有这些函数组合成一个函数。每个函数共享的共同点是控件Id和控件类型。
到目前为止,我得到的是:
Public Function GetControl(Of T)(ByVal ctrlId As String) As T
Dim ctrl As Control = Me.FindControl(ctrlId)
If (Not ctrl Is Nothing) Then
GetControl = CType(ctrl, T)
Else
GetControl = Nothing
End If
End Function
但是“GetControl=CType(ctrl,T)”这一行给了我一个编译错误:
Value of type System.Web.UI.Control cannot be converted to T
这是在.NET Framework 2.0中。
任何见解都将不胜感激。
约翰