C#事件的问题,高手请进。。。

来源:百度知道 编辑:UC知道 时间:2024/07/08 18:40:49
事件代码如下:

using System;

class send
{
public delegate void f();
public event f onf;
public void fx()
{
if (onf != null)
Console.WriteLine("发新刊。。。");
onf();
}
}

class receive
{
public void rec()
{
Console.WriteLine("新刊已经收到。。。");
}
}

class s
{
static void Main()
{
send pub = new send();
receive r = new receive();
pub.onf += new send.f(r.rec);
pub.fx();
}
}

事件的代码就这样,请看另一段代码:

using System;

class send
{
public delegate void f();
private f x;
public f M_x
{
set { x = value; }
get { return x; }

}
public void fx()
{
if (x != null)
Console.Wr

public f M_x
{
set{ x = value; }
get { return x; }

}

事件的写法有误,应改为:

public f M_x
{
add{ x = value; }
remove { return x; }
}

你的第2种方法把事件声明成属性了。这样就不能实现多播功能,这是区别。

如果改成add,remove的方法就能实现多播.