1、解释
2、代码
委托的基本使用
using System.Linq.Expressions;
using System.Net.Http;
using System;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstSpell : MonoBehaviour
{
public delegate void Event(string s);
Event weather, notice;
// Start is called before the first frame update
void Start()
{
weather = GoToLibrary;//绑定
weather("天气好");//执行
notice = GoToLibrary;
notice("马上考试");
}
// Update is called once per frame
void Update()
{
}
void GoToLibrary(string s){
print("今天" + s + ", 去图书馆。");
}
}
添加委托和减少委托
using System.Linq.Expressions;
using System.Net.Http;
using System;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstSpell : MonoBehaviour
{
public delegate void Event(string s);
Event weather, notice;
// Start is called before the first frame update
void Start()
{
weather = GoToLibrary;//绑定
notice = GoToLibrary;
weather += Business;//添加委托
notice += Business;//添加委托
notice -= GoToLibrary;//减少委托
weather("天气好");//执行
notice("马上考试");
}
// Update is called once per frame
void Update()
{
}
void GoToLibrary(string s){
print("今天" + s + ", 去图书馆。");
}
void Business(string s){
print("今天" + s + ", 特别忙。");
}
}
过于简单的,也可以写成一行
weather += (s) => {print("今天" + s + ", 去图书馆");};//添加委托