日期:2014-05-18  浏览次数:20782 次

如何检测方法是否已经定义?
请问在C#中是否有和JS中一样先检测方法程序是否存在,如果存在则执行的方法?
JS中代码类似如下:
if(window.myfunction)
  eval("myfunction");

------解决方案--------------------
利用反射应该可以满足您的需求...

参考如下代码:
C# code

using System.Reflection;

public static class Utility
{
    public static bool Exists(object instance, string funcname)
    {
        bool value = false;

        if (instance == null)
        {
            throw new NullReferenceException();
        }

        MethodInfo method = instance.GetType().GetMethod(funcname, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);

        if (method != null)
        {
            value = true;
        }
        
        return value;
    }
}