質問はcsharplerによって回答されました。2 つの同じクラスを相互に (MenuMaker クラスで) 作成したとは思いもしませんでした...
バツ
バツ
バツ
私が問題を抱えているコードサンプルは次のとおりです。
namespace MeatMenuProgram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MenuMaker menu = new MenuMaker() { Randomizer = new Random() };
label1.Text = menu.GetMenuItem();
label2.Text = menu.GetMenuItem();
label3.Text = menu.GetMenuItem();
label4.Text = menu.GetMenuItem();
label5.Text = menu.GetMenuItem();
label6.Text = menu.GetMenuItem();
}
}
}
私はMenuMaker
クラスを作りました:
namespace MeatMenuProgram
{
class MenuMaker
{
class MenuMaker {
public Random Randomizer;
string[] Meats = { "Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
string[] Condiments = { "yellow mustard", "brown mustard","honey mustard", "mayo", "relish", "french dressing" };
string[] Breads = { "rye", "white", "wheat", "pumpernickel","italian bread", "a roll" };
public string GetMenuItem() {
string randomMeat = Meats[Randomizer.Next(Meats.Length)];
string randomCondiment = Condiments[Randomizer.Next(Condiments.Length)];
string randomBread = Breads[Randomizer.Next(Breads.Length)];
return randomMeat + " with " + randomCondiment + " on " + randomBread;
}
}
}
}
しかし、コンパイルされません。エラーログ:
エラー 1 'MeatMenuProgram.MenuMaker' には 'Randomizer' の定義が含まれていません
エラー 2 'MeatMenuProgram.MenuMaker' には 'GetMenuItem' の定義が含まれておらず、'MeatMenuProgram.MenuMaker' 型の最初の引数を受け入れる拡張メソッド 'GetMenuItem' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)