最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【事件?語(yǔ)法篇】如何聲明自定義的事件以及事件的完整/簡(jiǎn)略聲明格式(附:事件...

2023-07-02 14:18 作者:栽在這  | 我要投稿

using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

/// <summary>

///?

/// 自定義事件

/// </summary>

public class OrderEventArgs:EventArgs

{

??public string CoffeeName { get; set; }

??public string CoffeeSize { get; set; }

??public float CoffeePrice { get; set; }

}

/// <summary>

/// 事件的擁有者[類(lèi)]----->Customer類(lèi)

/// 事件[event關(guān)鍵字修飾]----->OnOrder,點(diǎn)餐事件

/// 時(shí)間的響應(yīng)者[類(lèi)]----->Waite類(lèi)r

/// 事件處理器[方法-收到約束的方法]----->TakeAction方法

/// 事件的訂閱關(guān)系[+=]----->+=

/// </summary>

public class Tra : MonoBehaviour

{

??//規(guī)定:當(dāng)委托是要實(shí)現(xiàn)某種事件時(shí),命名為事件名+EventHandler--具有可讀性,也可以約束改委托

??//為OnOrder事件聲明委托

??public delegate void OrderEventHandler(Customer _customer, OrderEventArgs _e);

??Customer customer = new Customer();

??Waiter waiter = new Waiter();

??// Start is called before the first frame update

??void Start()

??{

????customer.OnOrder += waiter.TakeAction;//事件處理器

????customer.Order();//事件擁有者的內(nèi)部邏輯,觸發(fā)事件


????customer.PayTheBill();

??}

??public class Customer

??{

????public float Bill { get; set; }

????public void PayTheBill()

????{

??????Debug.Log("付"+Bill+"錢(qián)");

????}

????private OrderEventHandler orderEventHandler;

????//申明事件

????public event OrderEventHandler OnOrder

????{

??????add

??????{

????????orderEventHandler += value;//添加事件處理器

??????}

??????remove

??????{

????????orderEventHandler -= value;

??????}

????}

????public void Order()

????{

??????if(orderEventHandler!=null)

??????{

????????OrderEventArgs e = new OrderEventArgs();

????????e.CoffeeName = "abc";

????????e.CoffeeSize = "Grand";

????????e.CoffeePrice = 30;


????????orderEventHandler(this, e);

??????}

????}

??}

??public class Waiter

??{

????internal void TakeAction(Customer _customer, OrderEventArgs _e)

????{

??????float finalPrice = 0;

??????switch(_e.CoffeeSize)

??????{

????????case "Tall":

??????????finalPrice = _e.CoffeePrice;//原價(jià)

??????????break;

????????case "Grand":

??????????finalPrice = _e.CoffeePrice + 3;

??????????break;

????????case "Venti":

??????????finalPrice = _e.CoffeePrice + 6;

??????????break;

??????}

??????_customer.Bill += finalPrice;

????}

??}

}

【事件?語(yǔ)法篇】如何聲明自定義的事件以及事件的完整/簡(jiǎn)略聲明格式(附:事件...的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
巴中市| 江孜县| 二连浩特市| 敖汉旗| 宁德市| 开江县| 沽源县| 吉木乃县| 宜君县| 化德县| 平谷区| 房产| 乌鲁木齐市| 柳江县| 舒城县| 冷水江市| 犍为县| 柯坪县| 井陉县| 民丰县| 乌海市| 扎鲁特旗| 麟游县| 勐海县| 达孜县| 开远市| 清远市| 常德市| 平顶山市| 定陶县| 石台县| 石狮市| 舒城县| 阳信县| 利辛县| 烟台市| 凤城市| 柳州市| 阳春市| 穆棱市| 柯坪县|