反射方法调用实例

  之前,开发过程中对于这块并不常用。记得,只是在简单工厂模式那用到。因为,项目需要支持SqlServer、MySQL两种数据库,所以在数据库调用那简单使用一下。当然,目前自从有了EF后,不怎么使用了。以下,简单测试调用。

  创建需要调用方法的类

 class SampleClass
    {
        public void Cleaning()
        {
            Console.WriteLine("打扫");
        }
        public void CleanClosed(object param)
        {
            Console.WriteLine(param + "清理衣柜");
        }
        public void Quarrel()
        {
            Console.WriteLine("吵架");
        }
        public void Shopping()
        {
            Console.WriteLine("买东西");
        }
        
    }

  创建枚举,当然可以使用具体方法名字

 

enum Week
{
Monday,
Teusday,
Wendesday,
Thursday,
Friday
}

  根据枚举值,返回执行方法名称

 public string ActionInTable(Week week)
        {
            string[] methods = { "Cleaning", "CleanClosed", "Quarrel", "Shopping" };

            return methods[(int)week];
        }

 

 测试反射执行方法

 public void Test()
        {
           
            SampleClass sampleCls = new SampleClass();

            var addMethods = typeof(SampleClass).GetMethod(ActionInTable(Week.Teusday));

            if (addMethods != null)
            {
                addMethods.Invoke(sampleCls, new object[] { "wangjx" });
            }
        }

 

最后结果:"wangjx"清理衣柜


posted on 2015-09-06 20:52  天露  阅读(273)  评论(0)    收藏  举报

导航