免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
利用反射獲得委托和事件以及創(chuàng)建委托實例和添加事件處理程序
近一些都在看關(guān)于反射的內(nèi)容,然后在網(wǎng)上大多數(shù)都是通過反射獲得類型中方法,屬性、字段這樣的文章, 但是對于如何獲得委托類型怎么去實現(xiàn)的卻沒有, 所以寫下這邊篇文章來讓自己以后很好的復(fù)習(xí)以及想了解的朋友做參考。

一、 利用反射獲得委托類型并創(chuàng)建委托實例

using System;using System.Reflection;namespace ConsoleApplication1{public  class Test{public delegate void delegateTest(string s);public void method1(string s){Console.WriteLine("Create Delegate Instance: " + s);}}class Program{static void Main(string[] args){Test test = new Test();Type t = Type.GetType("ConsoleApplication1.Test");// 因為委托類型編譯后是作為類的嵌套類型的,所以這里通過GetNestedType(String s)的方法來獲得委托類型。Type nestType = t.GetNestedType("delegateTest");MethodInfo method =test.GetType().GetMethod("method1",  BindingFlags.Public | BindingFlags.Static|BindingFlags.Instance);if (method != null){// 創(chuàng)建委托實例Delegate method1 = Delegate.CreateDelegate(nestType, test, method);//動態(tài)調(diào)用委托實例method1.DynamicInvoke("Hello");}Console.Read();}}}


二、 利用反射獲得事件類型和綁定事件處理程序

using System;using System.Reflection;namespace ConsoleApplication2{public class Test{public event EventHandler TestEvent;public void Triggle(){if (TestEvent != null){TestEvent(this, null);}}}class Program{static void Main(string[] args){Test testT=new Test();EventInfo eventinfo = typeof(Test).GetEvent("TestEvent");if (eventinfo != null){// 為事件動態(tài)綁定處理程序eventinfo.AddEventHandler(testT, new EventHandler(triggleEvent));testT.Triggle();}Console.Read();}public static void triggleEvent(object sender, EventArgs e){Console.WriteLine("Event has been Triggled");}}}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 委托鏈(多播委托)
使用委托(C# 編程指南)
C#反射概念以及實例詳解 - 51CTO.COM
Delegate 和 Event (委托和事件)
C#委托三(多播委托)
Delegate委托之學(xué)習(xí)心得
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服