c#事件機制

簡述

本文主要介紹c#的事件機制的定義,使用場景

什麼是事件及其使用場景?

事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。例如,中断。

事件的模型

事件的模型為發佈-訂閱模型,分為发布器(publisher)和訂閱器兩種對象 。發佈器定義了事件委託,事件的觸發條件等。订阅器(subscriber) 定義描述了事件觸發的動作。

定義實現一個事件

需求

每次銷售都會觸發,檢查一次庫存函數

訂閱器

    //訂閱器
    public class checkproduce { 
        
        //檢查庫存值
        public void check()
        {
            Console.WriteLine("觸發庫存檢查函數");
            
        }
    }

發佈器

    public class SaleData {
       //這裡定義了一個委託類型,訂閱器通過委託類型註冊到程序中
       //注意委託類型的和事件的方法名要保持一致
       public delegate void   checkNum();
       public event checkNum checkData;

        public void saleDone()
        {
            checkData();
        }
    }

主程序

// See https://aka.ms/new-console-template for more information
using myjob;
using System;

namespace myworkApplcition
{
    class myword
    {
        static void Main(string[] args)
        {

            checkproduce checkproduce = new checkproduce();
            SaleData saleData= new SaleData();
            //註冊檢查函數
            saleData.checkData += new SaleData.checkNum(checkproduce.check);
            saleData.saleDone();
        }

    }


}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static myjob.EventTest;

namespace myjob
{
    //訂閱器
    public class checkproduce { 
        
        //檢查庫存值
        public void check()
        {
            Console.WriteLine("觸發庫存檢查函數");
            
        }
    }
    //銷售數據校對
    public class SaleData {
       public delegate void   checkNum();
       public event checkNum checkData;

        public void saleDone()
        {
            checkData();
        }
       





    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值