C# 更好的方法编码这个if语句?

C# 更好的方法编码这个if语句?,c#,if-statement,C#,If Statement,我还有一个问题要问你们这些非常乐于助人的人。我使用了很多if语句,其中很多只是重复,我相信可以缩短。这是我目前的代码 if (Globals.TotalStands <= 1) { ScoreUpdate.StandNo2.Visible = false; ScoreUpdate.ScoreStand2.Visible = false; ScoreUpdate.ScoreOutOf2.Visible = false; } if (Globals.TotalStan

我还有一个问题要问你们这些非常乐于助人的人。我使用了很多if语句,其中很多只是重复,我相信可以缩短。这是我目前的代码

if (Globals.TotalStands <= 1)
{
    ScoreUpdate.StandNo2.Visible = false;
    ScoreUpdate.ScoreStand2.Visible = false;
    ScoreUpdate.ScoreOutOf2.Visible = false;
}

if (Globals.TotalStands <= 2)
{
    ScoreUpdate.StandNo3.Visible = false;
    ScoreUpdate.ScoreStand3.Visible = false;
    ScoreUpdate.ScoreOutOf3.Visible = false;
}

if (Globals.TotalStands <= 3)
{
    ScoreUpdate.StandNo4.Visible = false;
    ScoreUpdate.ScoreStand4.Visible = false;
    ScoreUpdate.ScoreOutOf4.Visible = false;
}

if (Globals.TotalStands <= 4)
{
    ScoreUpdate.StandNo5.Visible = false;
    ScoreUpdate.ScoreStand5.Visible = false;
    ScoreUpdate.ScoreOutOf5.Visible = false;
}

if (Globals.TotalStands <= 5)
{
    ScoreUpdate.StandNo6.Visible = false;
    ScoreUpdate.ScoreStand6.Visible = false;
    ScoreUpdate.ScoreOutOf6.Visible = false;
}

if (Globals.TotalStands <= 6)
{
    ScoreUpdate.StandNo7.Visible = false;
    ScoreUpdate.ScoreStand7.Visible = false;
    ScoreUpdate.ScoreOutOf7.Visible = false;
}

if (Globals.TotalStands <= 7)
{
    ScoreUpdate.StandNo8.Visible = false;
    ScoreUpdate.ScoreStand8.Visible = false;
    ScoreUpdate.ScoreOutOf8.Visible = false;
}

if(Globals.TotalStands您应该创建三个数组或控件列表并使用循环。

大多数属性都应该是数组(或其他集合)。例如:

ScoreUpdate.StandNo6
可能是这样的:

ScoreUpdate.StandNos[5]
然后,您可以使用循环,而不是所有那些
if
语句:

for (int i = 0; i < Globals.TotalStands; ++i)
{
    ScoreUpdate.StandNos[i].Visible = true;
    ScoreUpdate.ScoreStands[i].Visible = true;
    ScoreUpdate.ScoreOutOfs[i].Visible = true;
}
for(int i=0;i
或者,如果有一个ScoreUpdates数组,而不是三个单独的数组,这种细微的变化可能会更好:

for (int i = 0; i < Globals.TotalStands; ++i)
{
    var scoreUpdate = ScoreUpdates[i];
    scoreUpdate.StandNo.Visible = true;
    scoreUpdate.ScoreStand.Visible = true;
    scoreUpdate.ScoreOutOf.Visible = true;
}
for(int i=0;i
对不起,您使用的是哪种语言?这可能是几种语言中的一种。如何将属性更改为数组。例如,ScoreUpdate.StandNo6是另一个表单上的标签?Thansk againHadlowJ:要更改它们,您必须将控件动态添加到表单中,而不是在设计器中进行更改。但您实际上不需要更改任何情况下,您都可以添加一个包含对现有控件引用的数组。您可以通过执行一系列赋值在构造函数中填充该数组。