//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()获取值,但是通过使用标签,我只能显示最后一个迭代值。如何克服这个问题?
答案 0 :(得分: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
}