[問題] 變更委派的執行個體

看板C_Sharp作者 (好無聊)時間15年前 (2010/10/02 11:07), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
namespace ConsoleApplication1 { class Program { class A { public Action WhenAection = null; public A(){ } public void FuncA() {/*一些程式碼*/ } public void FuncB() {/*一些程式碼*/ } /*下略,總而言之,很多方法*/ } static void Main(string[] args) { A a = new A(); a.WhenAection = a.FuncA; //====================================== A b = new A(); /* a.WhenAection = b.WhenAection; a.WhenAection.Target = a; 失敗,因為a.WhenAection.Target唯讀,不能用這種方法變更執行個體 */ } } } 請問在使用委派時,如何做到..... 如果 (a.WhenAection == a.FuncA) 就設定 b.WhenAection == b.FuncA (以此類推) 另外.... 不是很希望使用一堆if... else if 的陳述句 因為同一class下的方法很多 而且不少class都需要用到這種處理方式 -- 我就是喜歡從後面來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.107.28 ※ 編輯: FF16 來自: 220.140.107.28 (10/02 11:16) ※ 編輯: FF16 來自: 220.140.107.28 (10/02 11:31)

10/02 21:03, , 1F
不用判斷的有點困難,因為A跟B是不同的執行個體
10/02 21:03, 1F

10/02 21:05, , 2F
要不然宣告public static Action WhenAection = null;
10/02 21:05, 2F

10/02 21:11, , 3F
直接調用A.WhenAection
10/02 21:11, 3F

10/03 06:22, , 4F
那樣的話,意思不一樣喔....
10/03 06:22, 4F
文章代碼(AID): #1Cfg7S2D (C_Sharp)