2013-04-04 73 views
-1

已回答问题csharpler。我不知道我创建了两个内彼此相同类(在MenuMaker类)的....X不包含对Y的定义

X

X

X

下面是代码样品I”

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类:

与具有麻烦米

但它不编译。错误日志:

错误1“MeatMenuProgram.MenuMaker”不包含关于“随机函数发生器”

错误2的定义“MeatMenuProgram.MenuMaker”不包含关于“GetMenuItem”的定义和没有扩展方法“GetMenuItem”接受型“MeatMenuProgram.MenuMaker”的第一个参数可以找到(是否缺少using指令或程序集引用?)

+0

是'Randomizer'公共? – I4V 2013-04-04 19:45:05

+1

您可以向我们展示您的MenuMaker对象吗? – IronMan84 2013-04-04 19:45:28

+2

为什么你的MenuMaker类嵌套在另一个MenuMaker类中? – 0xFF 2013-04-04 19:54:27

回答

0

你的类MenuMaker,为错误状态,不包含这些属性/您尝试访问的方法。你必须有

public string GetMenuItem() { } 
public Random Randomizer { get; set; } 

在类MenuMaker

你有MenuMaker类嵌套在另一个具有相同的名称,你必须删除加倍class MenuMaker {(和结束大括号)。

+0

'添加'MenuMaker'类。 – user2129296 2013-04-04 19:52:42

+0

@ user2129296我更新了我的答案,让我知道这是否解决了您的问题 – pascalhein 2013-04-04 19:55:01

+1

哇,我很笨。我没有注意到嵌套类。 – user2129296 2013-04-04 19:56:53

1

首先,您应该使用C#编程约定,例如:以小写字母开始变量名称,参数和字段

然后,在您的代码中,以好看的。你看到MeatMenuProgram命名空间吗?是。它是否包含MenuMaker课程?是的,它确实。 那个类是否包含字段randomizer?不,不是的。它包含另一类也叫MenuMaker。相反,删除内部类和所有你的问题消失:

namespace MeatMenuProgram 
{ 
    class MenuMaker 
    { 
     public Random randomizer; 

     string[] meats = 
     { "Roast beef", "Salami", "Turkey", "Ham", "Pastrami" }; 

     string[] condiments = 
     { "yellow mustard", "brown mustard","honey mustard" }; 

     string[] breads = 
     { "rye", "white", "wheat", "pumpernickel" }; 

     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; 
     } 
    } 
} 
相关问题