Generics 无法将控件类型强制转换为';System.Web.UI.WebControl.Lable类型

Generics 无法将控件类型强制转换为';System.Web.UI.WebControl.Lable类型,generics,casting,controls,label,Generics,Casting,Controls,Label,我有这个通用函数 T AddControl<T>() where T : WebControl, new() { T ctrl = new T(); if (ctrl is Label) {((Label)ctrl).Text = "FirstName :";} return ctrl; } T AddControl(),其中T:WebControl,new(){ T ctrl=新的T(); 如果(ctrl是Label){((Label)ctrl).Text=“FirstN

我有这个通用函数

T AddControl<T>() where T : WebControl, new() { 
T ctrl = new T(); 
if (ctrl is Label)  {((Label)ctrl).Text = "FirstName :";}
return ctrl; } 
T AddControl(),其中T:WebControl,new(){
T ctrl=新的T();
如果(ctrl是Label){((Label)ctrl).Text=“FirstName:;}
返回ctrl;}
我收到错误:“无法将类型“T”转换为“System.Web.UI.Webcontrols.Lable” 正确的铸造方法是什么。 提前谢谢。
BB

您可以将
用作

T AddControl<T>() where T : WebControl, new() { 
    T ctrl = new T();
    Label label = ctrl as Label;
    if (label != null)
    {
        label.Text = "FirstName :";
    }
    return ctrl; 
}
T AddControl(),其中T:WebControl,new(){
T ctrl=新的T();
标签标签=ctrl作为标签;
如果(标签!=null)
{
label.Text=“FirstName:”;
}
返回ctrl;
}