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

  • C# 类教程-类
  • C# 类教程-类成员:字段(域)、属性、索引
  • C# 类教程-类成员:方法、事件
  • C# 类教程-类成员:运算符重载与索引器
  • C# 类教程-类成员:构造函数和析构函数
  • C# 类教程-类成员:嵌套类型
  • C# 类教程-访问修饰符与可访问性级别
  • C# 类教程-继承
  • C# 类教程-继承:方法重载
  • C# 类教程-继承:隐藏(new)
  • C# 类教程-继承:重写(virtual 与 override)
  • C# 类教程-继承:抽象(abstract)
  • C# 类教程-多态性

方法

“方法”是包含一系列语句的代码块,方法可以有返回值,如果没有返回值,则应该在方法名称前冠以 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

  • C# 类教程-类
  • C# 类教程-类成员:字段(域)、属性、索引
  • C# 类教程-类成员:方法、事件
  • C# 类教程-类成员:运算符重载与索引器
  • C# 类教程-类成员:构造函数和析构函数
  • C# 类教程-类成员:嵌套类型
  • C# 类教程-访问修饰符与可访问性级别
  • C# 类教程-继承
  • C# 类教程-继承:方法重载
  • C# 类教程-继承:隐藏(new)
  • C# 类教程-继承:重写(virtual 与 override)
  • C# 类教程-继承:抽象(abstract)
  • C# 类教程-多态性

你可能感兴趣的