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方法。
     

  • 相关阅读:
    模块
    匿名函数
    推导式
    函数 重点
    新的
    知识点补充
    unity学习规划与进度
    暂停·笔记
    解决问题__max 模型白色 材质球换没用
    Max__cs骨骼
  • 原文地址:https://www.cnblogs.com/ywkpl/p/2513308.html
Copyright © 2011-2022 走看看