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の2つの派生クラスがあります。最後に、label12でelementMutantクラスのみの出力を取得しています。同じラベルでphysicalMutantの出力を取得する方法。foreachループ内でメッセージボックスコントロールを使用すると、両方の派生クラスのdisplayQuotient()から値を取得できますが、ラベルを使用すると、最後の反復値のみを表示できます。この問題を解決するにはどうすればよいですか。

4

1 に答える 1

0

何が必要かはよくわかりませんが、すべてのミュータントの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 に答える