C# 继承类 的事件问题

tommir3 2012-09-14 11:09:52

static void Main(string[] args)
{
B b = new B();
b.OnTestEvent +=new TestHandler(delegate
{
Console.WriteLine("执行了事件");
});
new B().Test();
Console.Read();
}

public class B : A
{
public void Test()
{
Demo();
OnTestEvent();// 这里报错
}
}

public class A : IA
{
public void Demo()
{
Console.WriteLine("Class A demo");
}
public event TestHandler OnTestEvent;
}

public delegate void TestHandler();
public interface IA
{
void Demo();
event TestHandler OnTestEvent;
}

我想要的是,A类继承接口IA,B类继承A类,
想在B类中某时刻触发事件OnTest(),然后向外通知。
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tommir3 2012-09-14
  • 打赏
  • 举报
回复
我去,谢谢你hztltgg,
我自己写错了。。。。我说怎么出错。。。。。
哈哈,结贴。我真2......
xboxeer 2012-09-14
  • 打赏
  • 举报
回复
正解 你干嘛再new一个B出来?
[Quote=引用 2 楼 的回复:]
C# code

class Program
{
static void Main(string[] args)
{
B b = new B();
b.TestEvent += new TestHandler(delegate
{
……
[/Quote]
lyj73231 2012-09-14
  • 打赏
  • 举报
回复
L1正解,我的想法也是一样的
hztltgg 2012-09-14
  • 打赏
  • 举报
回复

class Program
{
static void Main(string[] args)
{
B b = new B();
b.TestEvent += new TestHandler(delegate
{
Console.WriteLine("执行了事件");
});
//new B().Test();
b.Test();
Console.Read();
}

public class B : A
{
public void Test()
{
Demo();
OnTestEvent();// 这里报错
}
}

public class A : IA
{
public void Demo()
{
Console.WriteLine("Class A demo");
}
public event TestHandler TestEvent;

protected virtual void OnTestEvent()
{
if (TestEvent != null)
{
TestEvent();
}
}


}

public delegate void TestHandler();

public interface IA
{
void Demo();
event TestHandler TestEvent;
}

}
bdmh 2012-09-14
  • 打赏
  • 举报
回复

public class B : A
{
public void Test()
{
Demo();
DoTest();
}
}

public class A : IA
{
public void Demo()
{
Console.WriteLine("Class A demo");
}
protected void DoTest()
{
if (OnTestEvent != null)
{
OnTestEvent();// 这里报错
}
}
public event TestHandler OnTestEvent;
}

110,825

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧