c# 学习笔记之九 事件(event)的使用,一个简单例子揭示机理

什么是事件?我们可否看做是一个或者若干个动作?是可以的,比如射击事件,包含几个动作:1.子弹上膛2.拉枪栓3.瞄准4.扣扳机

一个事件包含几个动作,而每个动作都是一个函数,因为在C#中,函数就是做(),因此一个事件由几个函数组成。这么多函数,是用函数代表表示的。那么,什么是函数代表呢?可以这样认为,函数代表就是函数名。你说,函数的代表是不是函数名呢?当然是了。

因此,把一系列函数的代表加入一个事件,事件就成啦。这是关于事件和函数代表的关系。

事件可以看做是一系列函数即方法,那么方法是属于一个类的对象的。因此事件是在一个类中定义的。

using System;
namespace EventDemo
{
public delegate void  Act();
class F   {
public static void Load()
	{
	Console.WriteLine("load the ammos");
	 }
public static void Pull()
	{
	Console.WriteLine("pull the bolt");
	 }
public static void Aim()
	{
	Console.WriteLine("take aim at the enemy");
	}
public static void Fire()
	{
	Console.WriteLine("pull the trigger");
	}
           }
class Soldier{
	public event Act FireEvent;
	public void Fire()
		{
		FireEvent();
		}
             }

class Program{
	public static void Main(string[] args)
		{
		Soldier s = new Soldier();
		s.FireEvent += F.Load;
		s.FireEvent += F.Pull;
		s.FireEvent += F.Aim;
		s.FireEvent += F.Fire;
		string cmd;
		cmd = Console.ReadLine();
		if (cmd == "fire")
			s.Fire();
	
		Console.Write("Press any key to continue . . . ");
		Console.ReadKey(true);
		}
		      }
}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值