(新手请教)关于委托与事件一个简单例子代码,不知道哪里出错了
我把default.aspx.cs的页面粘贴到这里:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
class Cat
{
private string name;
public Cat()
{ this.name = "无名字"; }
public delegate void a();
public event a b;
public void Shout()
{
Response.Write("喵");
if (b != null)
{ b(); }
}
}
class Mouse
{
private string name;
public Mouse()
{ this.name = "无名字"; }
public void Run()
{ Response.Write("猫来了,快跑"); }
}
Cat kitty = new Cat();
Mouse jerry = new Mouse();
kitty.b += new Cat.a(jerry.Run);
kitty.Shout();
protected void Page_Load(object sender, EventArgs e)
{ }
}
然后我运行,结果出错:
行 46: kitty.b += new Cat.a(jerry.Run);
原因:类、结构或接口成员声明中的标记“+=”无效
我是照着大话设计模式362页的例子敲进去的代码,,代码想表达的意思是通过猫与老鼠的例子,说明委托与事件的关系,但我弄不明白代码哪里出错了???
------解决方案--------------------我当然可以确定,因为我调试过。
你检查下
Cat kitty = new Cat();
Mouse jerry = new Mouse();
kitty.b += new Cat.a(jerry.Run);
kitty.Shout();
代码你写在哪里了。
因为你的cat mouse类都放在 _default类里面了。
------解决方案--------------------楼主的代码是乱写的吧,怎能把类写在页面类里面了,怪!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class NetTech_面向对象_委托_Default : System.Web.UI.Page
{
public delegate string