私は現在、abstract
クラスとvirtual
. 動物の名前、色、鳴き声を生成するシンプルなフォームを作成しました。カラー表示プロパティを除いて、すべてが正しく機能しているようです。結果は複数行のテキスト ボックスに表示されています。この形式ではなく色名のみで結果を表示する方法はありますColor [DarkGray]
か?
ボタンがクリックされたときの結果:
Betty is a Color [DarkGray] horse with four legs and runs very fast that goes neigh! neigh!!
望ましい結果:
Betty is a Dark Gray horse with four legs and runs very fast that goes neigh! neigh!!
コード
namespace farm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public abstract class Animal
{
protected string the_name;
protected string the_type;
protected Color the_color;
protected string features;
public virtual string speaks()
{
return "";
}
public override string ToString()
{
string s = the_name + " is a " + the_color + " " + the_type + " with " + features + " that goes " + speaks();
return s;
}
}
public class Horse : Animal
{
public Horse(string new_name, Color new_color)
{
the_name = new_name;
the_color = new_color;
the_type = "horse";
features = "four legs and runs very fast";
}
public override string speaks()
{
return "neigh! neigh!!";
}
}
private void button1_Click(object sender, EventArgs e)
{
Horse horse1 = new Horse("Topaz", Color.DarkGray);
textBox1.AppendText(horse1.ToString());
}
}
}