日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用反射获得委托和事件以及创建委托实例和添加事件处理程序

發(fā)布時(shí)間:2024/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用反射获得委托和事件以及创建委托实例和添加事件处理程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

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");// 因?yàn)槲蓄愋途幾g后是作為類的嵌套類型的,所以這里通過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)建委托實(shí)例Delegate method1 = Delegate.CreateDelegate(nestType, test, method);//動(dòng)態(tài)調(diào)用委托實(shí)例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){// 為事件動(dòng)態(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");}} }


希望這些使大家對(duì)放射有個(gè)更好的理解。

?

轉(zhuǎn)載于:https://blog.51cto.com/learninghard/1034785

總結(jié)

以上是生活随笔為你收集整理的利用反射获得委托和事件以及创建委托实例和添加事件处理程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。