zoukankan      html  css  js  c++  java
  • Delegate實現動態執行方法

    通過 Delegate.CreateDelegate方法實現動態執行指定方法

    聲明委託:

    public delegate void DelegateMethod();

    實例化方法調用

    ClassName classInstance = new ClassName();
    BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;
    MethodInfo minfo = typeof(ClassName).GetMethod("MethodName", flags);

    DelegateMethod dm = (DelegateMethod)Delegate.CreateDelegate(typeof(DelegateMethod), classInstance, minfo, false);
    dm();

    靜態方法調用

    BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
    MethodInfo minfo = typeof(ClassName).GetMethod("MethodName", flags);
    DelegateMethod dm = (DelegateMethod)Delegate.CreateDelegate(typeof(DelegateMethod), minfo);
    dm();

    方法名稱通過 ”MethodName" 動態傳入

    實例方法和動態方法的區別在於 BindingFlags和CreateDelegate方法。
     

  • 相关阅读:
    数据结构中的知识
    Java中的小知识
    安装Linux虚拟机
    2.Two Sum
    1005. Maximize Sum Of Array After K Negations
    Leetcode刷题记录
    Markdown的使用笔记
    CCF历年试题总结
    在Linux上搭建Hadoop
    配置和使用连接池
  • 原文地址:https://www.cnblogs.com/ywkpl/p/2513308.html
Copyright © 2011-2022 走看看