事件为什么没有运行?

rampart 2011-07-08 09:46:56
学习事件,控制台应用程序,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Student
{
public delegate void BuyTicketDelegate(string name);


class Program
{

public event BuyTicketDelegate blEvent;
public Program(string num)
{
blEvent +=new BuyTicketDelegate(this.BuyTicket);
}
private void BuyTicket(string num)
{
Console.WriteLine("我要买"+num+"次车票");
}
private void ShowTicketNumber(string num)
{
blEvent(num);
}
static void Main(string[] args)
{
Console.WriteLine("创建学生对象");
Program stu = new Program("K7");
Console.WriteLine("创建完毕");
stu.ShowTicketNumber("K6");

Console.ReadKey();
}
}
}


我判断的程序运行结果是:
创建学生对象
我要买K7次车票
创建完毕
我要买K6次车票

实际是:
创建学生对象
创建完毕
我要买K6次车票

new Programe ("K7")时,不是会让blEvent += new BuyTicketDelegate(this.BuyTicket)
运行一次吗?难道事件注册时,不运行?
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind4fly 2011-07-11
  • 打赏
  • 举报
回复
public Program(string num){}
事件是绑定了,但是没有被触发。
rampart 2011-07-09
  • 打赏
  • 举报
回复
谢谢楼上各位的指点,现在终于弄清楚了。
huangwenquan123 2011-07-08
  • 打赏
  • 举报
回复
 public Program(string num)
{
blEvent += new BuyTicketDelegate(this.BuyTicket);
blEvent(num);
}
阿非 2011-07-08
  • 打赏
  • 举报
回复
呵呵,don‘t call us, we‘ll call you

new Programe ("K7")时,不是会让blEvent += new BuyTicketDelegate(this.BuyTicket)
运行一次吗?难道事件注册时,不运行?
-------------------------------------
假设可以运行,那怎么知道是K7呢? 仔细看代码再回复
  • 打赏
  • 举报
回复
这其实很简单,“好莱坞原则”,你不用找我们,我们会找你的!

比如说你把简历给招聘单位,他说:回去等通知吧。

就是这么回事。
  • 打赏
  • 举报
回复
不运行。

110,560

社区成员

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

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

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