Home
11 委托概述
Unity
11 委托概述
姜睿
姜睿
September 05, 2022
1 min

Table Of Contents

01
引入
02
声明
03
实例化与赋值
04
组合委托
05
添加 & 删除方法

引入

1
2using static System.Console;
3delegate void Delegate(int value);
4
5internal class Program
6{
7static void PrintLow(int value)
8{
9WriteLine($"{value} - low");
10}
11static void PrintHigh(int value)
12{
13WriteLine($"{value} - high");
14}
15
16private static void Main()
17{
18Delegate delegate_;
19
20Random randomer = new Random();
21int num = randomer.Next(99);
22
23delegate_ = num < 50 ? PrintLow : PrintHigh;
24// num: 49, output: 49 low
25// num: 51, output: 51 high
26delegate_(num);
27}
28}
29
  • 委托和类一样,是一个 用户定义类型
  • 委托有序地持有一个或多个方法。

声明

1
2// delegate returnType Name(params);
3delegate void Delegate(int value);
4

实例化与赋值

1
2// delegate returnType Name(params);
3delegate void Delegate(int value);
4
5internal class Program
6{
7private static void Main()
8{
9Delegate delegate_;
10delegate_ = new Delegate(PrintLow);
11delegate_ = num < 50 ? PrintLow : PrintHigh;
12}
13}
14

组合委托

1
2using static System.Console;
3// delegate returnType Name(params);
4delegate void Delegate();
5
6internal class Program
7{
8static void Method1()
9{
10WriteLine("@Method1");
11}
12static void Method2()
13{
14WriteLine("@Method2");
15}
16
17private static void Main()
18{
19Delegate delA, delB, delC;
20delA = Method1;
21delB = Method2;
22delC = delA + delB;
23
24// @Method1
25delA();
26// @Method2
27delB();
28// @Method1
29// @Method2
30delC();
31}
32}
33

添加 & 删除方法

1
2using static System.Console;
3delegate void Delegate();
4
5internal class Program
6{
7static void Method1()
8{
9WriteLine("@Method1");
10}
11static void Method2()
12{
13WriteLine("@Method2");
14}
15
16private static void Main()
17{
18Delegate delA;
19delA = Method1;
20delA += Method2;
21
22// @Method1
23// @Method2
24delA();
25
26// @Method1
27delA -= Method2;
28delA();
29}
30}
31

Tags

#game develop
姜睿

姜睿

学生

游戏设计学生

Expertise

游戏开发
平面设计

Related Posts

策略模式
策略模式
November 19, 2023
1 min

Legal Stuff

Privacy NoticeCookie PolicyTerms Of Use