首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

急这段代码哪里出错了?为什么张三吃了3次西瓜?解决办法

2012-04-06 
急!!这段代码哪里出错了?为什么张三吃了3次西瓜?using Systemdelegate void eatdelegate(string food)cl

急!!这段代码哪里出错了?为什么张三吃了3次西瓜?
using System;
delegate void eatdelegate(string food);
class Man
{
  private string name;
  public Man(string name)
{
  this.name=name;
}
  public void eat(string food)
  {
  Console.WriteLine(name+"吃"+food);
  }
}
class test
{
  static void eata(string food, params eatdelegate[] values)
  {
  if (values == null)
  {
  Console.WriteLine("没有人想吃东西了");
  }
  else
  {
  eatdelegate eatchain = null;
  foreach (eatdelegate i in values)
  {
  eatchain += i;
  eatchain(food);
  }

  }
  }
  static void Main()
  {

  Man zs = new Man("张三");
  Man ls = new Man("李四");
  Man ww = new Man("王五");
  eatdelegate zseat = new eatdelegate(zs.eat);
  eatdelegate lseat = new eatdelegate(ls.eat);
  eatdelegate wweat = new eatdelegate(ww.eat);
  eata("西瓜", zseat, lseat, wweat);
  eata("橘子", lseat);
  }
}


[解决办法]

C# code
                eatdelegate eatchain = null;                foreach (eatdelegate i in values)                {                    eatchain += i;                    //eatchain(food);这里去掉                }                eatchain(food);//写到这里
[解决办法]
foreach (eatdelegate i in values)
{
// eatchain += i;
i(food);
}

呵呵,同楼上,还有这样吃的

热点排行