C# 通過方法的字符串名動態調用方法 反射實現


通過字符串執行方法,在可能會調用不同方法時對不同方法進行調用

以下為實例:

 1 public class ABC
 2 {
 3     string str = "通過反射執行的方法";
 4     //Class:要反射的Method所在類名
 5     Type type = typeof(Class);
 6     //funcName:進行反射的方法名稱,第二個參數指定方法的搜索范圍,當前為搜索private的方法,沒有第二個參數則為public的方法
 7     MethodInfo mt = type.GetMethod("funcName",BindingFlags.NonPublic | BindingFlags.Instance);
 8     object instance = Activator.CreateInstance(t);
 9     //執行到反射成功的方法上
10     mt.Invoke(instance,new object[]{ paramster });
11     
12     //被反射執行到的方法
13     void funcName(object paramster)
14     {
15         //如果想要使用ABC類中的變量則需要在調用Invoke()時第一個參數置為ABC的實例而非instance
16         //實例:this
17         string a = str;
18     }
19 }
20 
21 public class CBA
22 {
23     string str = "通過反射執行的方法";
24     //被反射執行到的方法
25     public void funcName(object paramster)
26     {
27         //如果想要使用ABC類中的變量則需要在調用Invoke()時第一個參數置為ABC的實例而非instance
28         //實例:new CBA()
29         string a = str;
30     }
31 }

文檔:Type.note
結合線程使用:  鏈接:http://note.youdao.com/noteshare?id=baaca71b2653e8eb6a69b4ac67af9bce


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM