最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#委托與事件原理及實(shí)例解析

 更新時(shí)間:2020年12月03日 10:16:36   作者:手撕高達(dá)的村長  
這篇文章主要介紹了C#委托與事件原理及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

委托:個(gè)人在這里理解 委托就是 定義一個(gè)引用,一個(gè)可以記錄函數(shù)指針的引用。

public delegate void GreetingDelegate(int param);

事件:就是基于委托定義的。

public event GreetingDelegate payxx;

其實(shí)這里的事件payxx 就差不多和string 一樣可,只不過是存函數(shù)指針的變量。

這里上一個(gè)例子代碼:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
public class basetest : MonoBehaviour
{

  public GameObject panel;
  private bool isclick = false;
  public delegate void GreetingDelegate(int param);
  public event GreetingDelegate payxx;
  // Use this for initialization
  void Start()
  {

  }

  // Update is called once per frame
  void Update()
  {

  }
  void OnMouseOver()
  {
    if (Input.GetMouseButtonDown(0))
    { //左鍵點(diǎn)擊
      Debug.LogError("你點(diǎn)擊了NPC");
      //playRenwu();
    }

  }
  public void pay() {
    Debug.LogError("觸發(fā)了委托");
  }

  void playRenwu(bool isnotclick)
  {
    Debug.LogError("開始NPC任務(wù)");
    panel.gameObject.SetActive(isnotclick);
  }


  //protected virtual void Onpayxxxxx(int param)
  //{
  //  if (payxx != null)
  //  {
  //    Debug.LogError("委托的事件觸發(fā)了");
  //    payxx(param);
  //  }
  //  else
  //  {
  //    Debug.LogError("委托的事件沒觸發(fā)");
  //  }

  //}
  public void Onpayxx(int param)
  {
    if (payxx != null)
    {
      payxx(param);
    }
    else { 
    }
    
  }

  public void Myfuntion2(int param)
  {
    Debug.LogError("第二次調(diào)用=" + param);
  }
  public void MyFunction(int param)
  {
    Debug.LogError("OKOKOKOKO=" + param);
  }
  public void Onclickbutton()
  {
    basetest eventTest = new basetest();
    eventTest.payxx += new GreetingDelegate(MyFunction);//安裝事件
    eventTest.payxx += new GreetingDelegate(Myfuntion2);//安裝事件
    eventTest.Onpayxx(10);

    if (isclick == false)
    {
      Debug.LogError("你點(diǎn)擊了按鈕");
      isclick = true;
      playRenwu(true);
    }
    else
    {
      isclick = false;
      playRenwu(false);
    }
  }
}

payxx 存函數(shù)的地址,調(diào)用是按次數(shù)來的。

這里輸出的結(jié)果是:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#利用微軟自帶庫進(jìn)行中文繁體和簡體之間轉(zhuǎn)換的方法

    C#利用微軟自帶庫進(jìn)行中文繁體和簡體之間轉(zhuǎn)換的方法

    這篇文章主要介紹了C#利用微軟自帶庫進(jìn)行中文繁體和簡體之間轉(zhuǎn)換的方法,涉及C#使用Microsoft.VisualBasic類庫操作中文繁簡字體轉(zhuǎn)換的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#關(guān)于Func和Action委托的介紹詳解

    C#關(guān)于Func和Action委托的介紹詳解

    委托是存有對某個(gè)方法的引用的一種引用類型變量,本文主要介紹了C#關(guān)于Func和Action委托的介紹,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中常量和只讀變量的區(qū)別小結(jié)

    C#中常量和只讀變量的區(qū)別小結(jié)

    本篇文章主要是對C#中常量和只讀變量的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 深入解析C#中的命名實(shí)參和可選實(shí)參

    深入解析C#中的命名實(shí)參和可選實(shí)參

    這篇文章主要介紹了C#中的命名實(shí)參和可選實(shí)參,在COM接口相關(guān)的開發(fā)中經(jīng)??梢杂玫?需要的朋友可以參考下
    2016-01-01
  • C#實(shí)現(xiàn)的基于二進(jìn)制讀寫文件操作示例

    C#實(shí)現(xiàn)的基于二進(jìn)制讀寫文件操作示例

    這篇文章主要介紹了C#實(shí)現(xiàn)的基于二進(jìn)制讀寫文件操作,結(jié)合具體實(shí)例形式分析了C#以二進(jìn)制文件流形式針對文件進(jìn)行讀寫操作的相關(guān)技巧,需要的朋友可以參考下
    2017-07-07
  • C#中值類型和引用類型解析

    C#中值類型和引用類型解析

    這篇文章主要為大家詳細(xì)介紹了C#中值類型和引用類型的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 仿orm自動(dòng)生成分頁SQL分享

    仿orm自動(dòng)生成分頁SQL分享

    平時(shí)接觸的數(shù)據(jù)庫有sql2000-2008,Oracle,SQLite 。 分頁邏輯,Oracle和SQLite相對好寫,就SQL事多,Sql2000下只能用top,排序2次,而Sql2005+就可以使用ROW_NUMBER()分析函數(shù)了,據(jù)說Sql2012對分頁又有了改進(jìn)
    2014-01-01
  • c# 委托詳解

    c# 委托詳解

    本文將通過實(shí)例解析對c# 委托進(jìn)行詳細(xì)介紹,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • C# 字符串按 ASCII碼 排序的方法

    C# 字符串按 ASCII碼 排序的方法

    這篇文章主要介紹了C# 字符串按 ASCII碼 排序的方法,需要的朋友可以參考下
    2017-04-04
  • 登錄驗(yàn)證全局控制的幾種方式總結(jié)(session)

    登錄驗(yàn)證全局控制的幾種方式總結(jié)(session)

    在登陸驗(yàn)證或者其他需要用到session全局變量的時(shí)候,歸結(jié)起來,主要有以下三種較方便的實(shí)現(xiàn)方式。(其中個(gè)人較喜歡使用第一種實(shí)現(xiàn)方法)
    2014-01-01

最新評論

嵊泗县| 美姑县| 汶上县| 襄汾县| 辽源市| 囊谦县| 凤庆县| 龙江县| 博乐市| 商都县| 大埔区| 山东| 江油市| 河西区| 宜阳县| 无锡市| 吴忠市| 娱乐| 汝阳县| 屏山县| 姚安县| 仙游县| 通州市| 政和县| 四子王旗| 卢龙县| 昆山市| 勐海县| 衡阳县| 新余市| 荣昌县| 伊春市| 上蔡县| 五原县| 云龙县| 通城县| 河源市| 明水县| 东光县| 得荣县| 石家庄市|