創作內容

0 GP

進階 C# 編程技術(一) 委託與事件 - Delegate

作者:Aucer│2022-06-13 15:18:23│巴幣:0│人氣:163
using System;
using UnityEngine;

public class Project_Delegate : MonoBehaviour
{
    // 首先,定義 委託原型 (有無返回值皆可,也可以加 輸入參數)
    delegate void MyDelegate();//無返回值 無參數
    // 再用 委託原型 創建 委託事件 delegate1
    static MyDelegate delegate0;
    //--------------------------------------------------------------------
    delegate void MyDelegate1(int a, int b);//無返回值 有參數
    static MyDelegate1 delegate1;
    //--------------------------------------------------------------------

    delegate int MyDelegate2(int a, int b);//有返回值 有參數
    static MyDelegate2 delegate2;
    //--------------------------------------------------------------------

    void Start()
    {
        // //Debug.Log("綁定 Test1, Test2 到 delegate1");
        // delegate0 += Test1;
        // delegate0 += Test2;
        // delegate0();
        // //Debug.Log("解綁 Test1 對 delegate0 的註冊");
        // delegate0 -= Test1;
        // delegate0();

        //把方法當成參數進行傳遞
        // Test(Test1);
        // delegate1 += Test3;
        // delegate1(100, 200);

        delegate2 += Test4;
        int result = delegate2(500, 600);
        Debug.Log("delegate2(500, 600) 返回的結果 : " + result);
    }

    static void Test(MyDelegate d)
    {
        Debug.Log("Test");
        if (d != null)
        {
            d();
        }
    }

    public void Test1()
    {
        Debug.Log("執行 Test 1 !");
    }
    public void Test2()
    {
        Debug.Log("執行 Test 2 !");
    }
    public void Test3(int a, int b)
    {
        Debug.Log("Test 3 (int " + a + ", int " + b + ") 的結果為 " + (a + b));
    }
    public int Test4(int a, int b)
    {
        Debug.Log("執行 Test 4 !");
        return (int)(a * b);
    }
}

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5484537
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★ck7william19 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:進階 C# 編程技術(一... 後一篇:進階 C# 編程技術(一...

追蹤私訊切換新版閱覽

作品資料夾

Lobster0627全體巴友
大家可以多多來我的YT頻道看看哦(*´∀`)~♥https://www.youtube.com/@lobstersandwich看更多我要大聲說昨天18:56


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】