兩大作用:
(1)將方法當作參數傳遞
(2)方法的一種多態(類似于一個方法模板,可以匹配很多個方法)
~~~text
//定義一個委托
public delegate int MyDelegate(int x, int y);
//與委托匹配的一個方法
public static int Add(int a, int b)
{
return a + b;
}
//與委托匹配的另一個方法
public static int Reduce(int a, int b)
{
return a - b;
}
//示例:將委托/方法當參數傳遞
public static int Test(MyDelegate MD)
{
return MD(10, 20);
}
static void Main(string[] args)
{
int a, b, x, y;
MyDelegate md;
//將委托指向Add這個方法,并進行相關操作
md = Add;
a = md(1, 2);
b = Test(md);
//再將委托指向Reduce這個方法,并進行相關操作
md = Reduce;
x = md(7, 2);
y = Test(md);
Console.WriteLine($"1+2={a},10+20={b},7-2={x},10-20={y}");
Console.ReadLine();
}
~~~
輸出:1+2=3,10+20=30,7-2=5,10-20=-10
- Visual Studio 2022安裝到非C盤
- .net平臺區別
- 常用單詞
- 關鍵字
- 操作符(運算符)
- 標識符(命名規范)
- 開始
- 變量
- 常量
- 數據類型
- 值類型
- 變量數據類型
- 枚舉類型enum(常量集合)
- 結構類型struct(結構體)
- 元組類型
- 可null類型(T?)
- 引用類型
- 數組(array)
- 集合(List)
- 內置引用類型
- object
- string
- Dynamic(動態類型)
- delegate委托(代理)類型
- 自定義引用類型
- 接口(interface)
- 類class
- record(定義一個引用類型)
- 指針類型(僅用于非安全代碼)
- get和set訪問器
- delegate委托
- delegate實現發布訂閱與事件
- 類型轉換
- 合并操作符??
- 類相關
- Partial 部分類
- 類定義以及訪問修飾符(封裝)
- abstract抽象類與sealed密封類
- virtual虛方法
- 接口interface
- C# 預處理器指令
- C#技術棧
- 判斷(流程控制)與三元運算
- if
- switch
- 三元運算
- 循環
- while 循環
- for循環
- foreach循環
- do...while 循環
- 文件操作
- 其他
- 多開