//多播委托事件
为什么总是提示无法将类型"void隐式转换为"MyEventHandler"呢
using System;
delegate void MyEventHandler();//为事件处理程序声明委托
//定义委托类
class MyEvent
{
public event MyEventHandler SomeEvent;//声明事件对象
public void OnSomeEvent()//触发事件方法
{
if (SomeEvent != null)
{
SomeEvent();
}
}
}
class X
{
public void Xhandler()
{
Console.WriteLine("Event received by X object"); }
}
class Y
{
public void Yhandler()
{
Console.WriteLine("Event received by Y object");
}
}
class EventDemo2
{
static void handler()
{
Console.WriteLine("Event received by EventDemo");
}
public static void Main()
{
MyEvent evt = new MyEvent();
X xob = new X();
Y yob = new Y();
evt.SomeEvent += handler();//注册事件方法
evt.SomeEvent += xob.Xhandler();
evt.SomeEvent += yob.Yhandler();
evt.OnSomeEvent();
Console.WriteLine();
evt.SomeEvent -= xob.Xhandler();
evt.OnSomeEvent();
Console.Read();
}
}
为什么总是提示无法将类型"void隐式转换为"MyEventHandler"呢
using System;
delegate void MyEventHandler();//为事件处理程序声明委托
//定义委托类
class MyEvent
{
public event MyEventHandler SomeEvent;//声明事件对象
public void OnSomeEvent()//触发事件方法
{
if (SomeEvent != null)
{
SomeEvent();
}
}
}
class X
{
public void Xhandler()
{
Console.WriteLine("Event received by X object"); }
}
class Y
{
public void Yhandler()
{
Console.WriteLine("Event received by Y object");
}
}
class EventDemo2
{
static void handler()
{
Console.WriteLine("Event received by EventDemo");
}
public static void Main()
{
MyEvent evt = new MyEvent();
X xob = new X();
Y yob = new Y();
evt.SomeEvent += handler();//注册事件方法
evt.SomeEvent += xob.Xhandler();
evt.SomeEvent += yob.Yhandler();
evt.OnSomeEvent();
Console.WriteLine();
evt.SomeEvent -= xob.Xhandler();
evt.OnSomeEvent();
Console.Read();
}
}
解决方案 »
- 关于聊天机器人
- visual studio 2008安装完vss2005后,文件菜单没有[源代码管理]这一项?
- 奇怪了 c#2005 打开设计器怎么不是控件,而是html代码
- 皮肤dll文件引用,该如何引用呢
- DateTime相减处理的问题
- .Net FrameWork Bug报告: 关于OleDb错误!
- 请问下继承和实例化是什么关系?突然一下子理不清了
- AcitveX控件问题,高手请进,分不够在加,急,在线等
- c#中如何读取 sql server中text类型的值哦?给个例子好么?
- 求购一套邮件管理源代码
- visual studio 2008 c#编出的exe怎么移植到别的电脑用。(有时会报错)
- FileUpload
delegate void MyEventHandler();//为事件处理程序声明委托
//定义委托类
class MyEvent
{
public event MyEventHandler SomeEvent;//声明事件对象
public void OnSomeEvent()//触发事件方法
{
if (SomeEvent != null)
{
SomeEvent();
}
}
}
class X
{
public void Xhandler()
{
Console.WriteLine("Event received by X object"); }
}
class Y
{
public void Yhandler()
{
Console.WriteLine("Event received by Y object");
}
}
class EventDemo2
{
static void handler()
{
Console.WriteLine("Event received by EventDemo");
}
public static void Main()
{
MyEvent evt = new MyEvent();
X xob = new X();
Y yob = new Y();
evt.SomeEvent +=new MyEventHandler(handler);//注册事件方法
evt.SomeEvent += new MyEventHandler(xob.Xhandler);
evt.SomeEvent += new MyEventHandler(yob.Yhandler);
evt.OnSomeEvent();
Console.WriteLine(); }
}
evt.SomeEvent += yob.Yhandler);