通过使用变量引用表单对象来优化C#代码

通过使用变量引用表单对象来优化C#代码,c#,C#,我希望能够将表单上的几个标签重置为“0”。 我通过引用每个标签来计算。我还使用了数组和for循环,这似乎更有效率。是否有一种方法可以通过使用for变量并构造一个字符串来引用每个标签名,该字符串的计算结果为标签名,而无需数组 像这样: for (int x = 0; x < 6; x++) lbls[x].Text = "0"; for(int x=0;xl.Text=“0”)`您可能应该将所有标签放在面板或其他容器中,然后获取该容器的控件,

我希望能够将表单上的几个标签重置为“0”。 我通过引用每个标签来计算。我还使用了数组和for循环,这似乎更有效率。是否有一种方法可以通过使用for变量并构造一个字符串来引用每个标签名,该字符串的计算结果为标签名,而无需数组

像这样:

            for (int x = 0; x < 6; x++)
            lbls[x].Text = "0";
for(int x=0;x<6;x++)
lbls[x].Text=“0”;
这是我的密码:

        // Clear form labels
    private void btnClear_Click(object sender, EventArgs e)
    {
        Label[] lbls = new Label[]
        {
            lbl1, lbl2,lbl3,lbl4,lbl5,lbl6
        };

        for (int x = 0; x < 6; x++)
            lbls[x].Text = "0";

        //lbl1.Text = "0";
        //lbl2.Text = "0";
        //lbl3.Text = "0";
        //lbl4.Text = "0";
        //lbl5.Text = "0";
        //lbl6.Text = "0";
    }
//清除表单标签
私有void btnClear\u单击(对象发送者,事件参数e)
{
标签[]lbls=新标签[]
{
lbl1、lbl2、lbl3、lbl4、lbl5、lbl6
};
对于(int x=0;x<6;x++)
lbls[x].Text=“0”;
//lbl1.Text=“0”;
//lbl2.Text=“0”;
//lbl3.Text=“0”;
//lbl4.Text=“0”;
//lbl5.Text=“0”;
//lbl6.Text=“0”;
}

如果没有其他标签:

this.Controls.OfType<Label>()

这将更加昂贵,因为您需要使用反射按名称查找对象,并将其文本属性设置为“0”

如果您想要小一点的东西,这里有一条线:

new List<Label>() { lbl1, lbl2, lbl3, lbl4, lbl5, lbl6 }.ForEach(x => x.Text = "0");
newlist(){lbl1,lbl2,lbl3,lbl4,lbl5,lbl6}.ForEach(x=>x.Text=“0”);

…虽然有点恶心:)

我认为代码应该是这样的:`this.Controls.OfType().ToList().ForEach(l=>l.Text=“0”)`您可能应该将所有标签放在面板或其他容器中,然后获取该容器的
控件
,这样以后添加标签不会产生意外的副作用。这是事实,但这只是因为我假设他不想使用表单上的其他标签。如果他想在特定标签上执行此操作,这可能是最干净的。除非如servy所述,他将所有标签都分配给一个父面板。
new List<Label>() { lbl1, lbl2, lbl3, lbl4, lbl5, lbl6 }.ForEach(x => x.Text = "0");