3
//program.cs
foreach (Mutant mutant in mutants)
{
    label12.Text=mutant.displayInfo();
}

//Mutant.cs 
public abstract int dangerQuotient();
public String displayInfo()
{
    return(codename + " " + dangerQuotient().ToString());
}

//physicalMutant.cs 
public override int dangerQuotient()
{
    return level * IQ * strength;
}

//elementMutant.cs
public override int dangerQuotient()
{
    return level * region;

}

Mutant 是我的基类,我有两个派生类physicalMutant 和elementMutant。最后,我在 label12 中单独获得 elementMutant 类的输出。如何在同一标签中也获得physicalMutant 的输出。通过在 foreach 循环中使用消息框控件,我可以从两个派生类中的 displayQuotient() 中获取值,但是通过使用标签,我只能显示最后一次迭代值。如何克服这个问题?

4

1 回答 1

0

我真的不确定您想要什么,但是如果要将您的所有 Mutants dangerQuotient 添加到您的标签中,您将需要将您的 foreach 语句更改为类似的内容。您当前在 foreach 循环的每次迭代中都替换标签的内容。

label12.Text = ""; // or just delete the text in the designer
foreach(Mutant mutant in mutants)
{
    label12.Text += mutant.displayInfo() + "\n"; //  This will create a seperate line for each displayInfo
   // label12.Text += mutant.displayInfo();  //This will add them on the same line
}
于 2012-12-27T06:59:00.763 回答