如何使用相同的变量使这个VB代码在C#中工作?

use*_*313 7 c# vb.net vb.net-to-c#

我试图弄清楚如何使用与VB相同的隐式定义将以下示例代码转换为C#.我知道我可以将按钮和通用控件定义为两个对象并使其工作,但我想在C#中使用相同的变量"ctlHTML"就像VB一样.有人可以帮忙吗?

Sub MySub(varInput As String, pnl As Panel)
    Dim ctlHTML = Nothing
    Select Case varInput
        Case "btn"
            ctlHTML = New HtmlButton
        Case "lbl"
            ctlHTML = New HtmlGenericControl()
    End Select
    With ctlHTML
        .Style.Add("font-size", "14px")
    End With
    pnl.Controls.Add(ctlHTML)
End Sub
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 4

您将无法直接转换代码。您必须为变量指定类型。支持所有成员的继承链中最高的类是HtmlControl

HtmlControl control = null;
switch(varInput)
{
    case "btn":
        control = new HtmlButton();
        break;
    case "lbl":
        control = new HtmlGenericControl();
        break;
}

if(control != null)
{
    control.Style.Add("font-size", "14px");
    pnl.Controls.Add(control);
}
Run Code Online (Sandbox Code Playgroud)