C# 类教程-类成员:方法、事件

作者:vkvi 来源:千一网络(原创) 日期:2008-4-8

方法

“方法”是包含一系列语句的代码块,方法可以有返回值,如果没有返回值,则应该在方法名称前冠以 void 表示无返回值。

关于方法请参见 C# 方法-参数C# 方法-返回值

本文写得有点复杂,要快速了解,可先参考:一个简明的 C# 事件示例

事件

在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }


        private void button1_Click(object sender, EventArgs e)
        {
            Car car = new Car();
            car.OnOilWarning += new OilEventHandler(OilWarning); //关联事件
            car.FillOil(5);
            car.Startup();
        }


        public void OilWarning(object sender, OilEventArgs e)
        {
            MessageBox.Show("监测到了汽车油量异常,当前油量为:" + e.OilMass);
        }

        
    }


    //事件代理,可以理解为这个事件要传送什么内容
    //事件参数我们使用自己写的 OilEventArgs
// 注意:只要你喜欢,你完全可以自定义参数,可以不要 sender,
// 可以不要参数,参数也不一定非得继承自 EventArgs。
public delegate void OilEventHandler(object sender, OilEventArgs e); //事件参数 public class OilEventArgs : System.EventArgs { private int _oilMass = 0; //油量 public int OilMass { get { return _oilMass; } } public OilEventArgs(int oilMass) { _oilMass = oilMass; } } //汽车类,包含事件成员 //当启动汽车时,如果油量少于某一个值,将会触发事件 public class Car { private int _oilMass = 0; //油量 public event OilEventHandler OnOilWarning; //定义事件成员,事件名称为 OnOilWarning //给汽车加油 public void FillOil(int oilMass) { _oilMass = oilMass; } //启动汽车 public void Startup() { if (_oilMass < 10) { OnOilWarning(this, new OilEventArgs(_oilMass)); } } }

事件关键词:delegate、event

public delegate void OilEventHandler(object sender, OilEventArgs e);

public event OilEventHandler OnOilWarning; //定义事件成员,事件名称为 OnOilWarning

相关文章
文章评论