深入理解C# 委托與事件
這是一個簡單的委托樣例
class TODO { public static void Main(String[] args) { Cal aa = new Cal(Add); Console.WriteLine(aa(2, 3)); } public delegate int Cal(int a, int b); private static int Add(int a, int b) { return a + b; } private static int Dec(int a, int b) { return a - b; } }
如此簡單的應用就是函數(shù)指針的意思
委托就是我給你原材料,你給我我要的成品,至于你拿我原材料干啥,我不是深究。
于是,有一個問題,為什么我不直接調用Add
或者Dec
函數(shù)呢?
這就是委托最大的好處,變量分離,將不變的封裝起來,隔離變化,例子如下:
class TODO { public static void Main(String[] args) { test(Add, 2, 3, 4); } public delegate int Cal(int a, int b); internal static void test(Cal cc, int a, int b, int c) { int x = 0; int y = 0; if (a > b) { if (a > c) { x = a; } else { if (b > c) { y = b; } else { y = c; } } } else { if (b > c) { x = b; } else { x = c; if (a > b) { y = a; } else { y = b; } } } int result = cc(x, y); Console.WriteLine(result); } private static int Add(int a, int b) { return a + b; } private static int Dec(int a, int b) { return a - b; } }
我有一個方案test
他的一切都是固定下來的,但是他的計算方法是多變的,因為我們可以用委托來改變傳入的方法
于是我們在不改變test
的情況下讓他有了更多的功能
接下來就是事件
到此這篇關于深入理解C# 委托與事件的文章就介紹到這了,更多相關C# 委托與事件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解C# 網絡編程系列:實現(xiàn)類似QQ的即時通信程序
本篇主要介紹了c#實現(xiàn)類似QQ的即時通信程序 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12Unity ScrollRect實現(xiàn)軌跡滑動效果
這篇文章主要為大家詳細介紹了Unity ScrollRect實現(xiàn)軌跡滑動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09C#使用Socket快速判斷數(shù)據庫連接是否正常的方法
這篇文章主要介紹了C#使用Socket快速判斷數(shù)據庫連接是否正常的方法,涉及C#中socket操作的相關技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04