c# html事件,C# 事件(Event)

就第一篇笔记的具体实现:

using System;

namespace CarEvent

{

public class Car

{

// 申明委托

public delegate void CarEngineHandler(string msg);

// 创建委托实例Exploded和AboutToBlow事件

public event CarEngineHandler Exploded;

public event CarEngineHandler AboutToBlow;

//设置属性

public int CurrentSpeed { get; set; }

public int MaxSpeed { get; set; }

public string PetName { get; set; }

public bool CarIsDead;//用于判断是否超速

public Car()//构造函数

{

MaxSpeed = 100;

}

public Car(string name, int maxSp, int currSp)//构造函数重载

{

CurrentSpeed = currSp;

MaxSpeed = maxSp;

PetName = name;

}

public void Accelerate(int delta)//用于触发Exploded和AboutToBlow事件

{

CurrentSpeed += delta;//"踩油门"加速

if (CurrentSpeed >= MaxSpeed)//判断时速

CarIsDead = true;

else

CarIsDead = false;

if (CarIsDead)// 如果Car超速了,触发Exploded事件

{

if (Exploded != null)//判断是否被委托联系起来

{

Exploded("sorry,this car is dead");//调用CarDead事件

}

}

else

{ //如果没有超速,则提示快要超速并显示实时车速

if ((MaxSpeed - CurrentSpeed) > 0 && (MaxSpeed - CurrentSpeed) <= 10 && AboutToBlow != null)//判断是否被委托联系起来且速度是否接近临界值

{

AboutToBlow("careful buddy ! gonna blow !");//调用NearDead事件

Console.WriteLine("CurrentSpeed={0}",CurrentSpeed);//显示实时车速

}

}

}

}

//订阅类书写举例

public class Answer

{

public void CarDead(string msg)//汽车已爆缸事件

{

Console.WriteLine("sorry,this car is dead");

}

public void NearDead(string msg)//汽车快要爆缸事件

{

Console.WriteLine("careful buddy ! gonna blow !");

}

}

//主函数书写

public class test

{

static void Main(string[] args)

{

Car c = new Car("奔驰",100,93);//创建实例并初始化,初始速度为93

Answer an = new Answer();

c.Exploded += new Car.CarEngineHandler(an.CarDead);//Exploded"绑定"CarDead

c.AboutToBlow += new Car.CarEngineHandler(an.NearDead);//AboutToBlow"绑定"NearDead

c.Accelerate(6);//第一次加速,时速小于100,引发的事件为"快要爆缸"并显示实时车速为99

Console.ReadLine();//等待回车键已启动第二次加速

c.Accelerate(2);//第二次加速,时速超过100,引发的事件为"已爆缸",不显示车速

Console.ReadKey();

}

}

}

结果为:

"careful buddy ! gonna blow !"

"CurrentSpeed=99"

(空行)(一定要记得敲一下回车键,不然不会显示下面字符串)

"sorry,this car is dead"

crqq123

crqq123

ays***q@163.com3年前 (2018-04-12)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值