c#使用反射调用类中的方法

2019年05月09日 浏览量:252

在我们刚开始写程序的时候是不是经常使用if判断参数,然后调用对应的方法呢?

其实使用反射也可以实现同样的功能,而且代码简洁,不用像if和switch那样臃肿。

 string method = Request["method"].ToString(); //这是常用的if判断 if (method == "Login") { string result = new Class1().login().ToString() ; }else if (method == "Register") { string result = new Class1().Register().ToString(); }else if (method=="xxx") { }else if (method == "xxxx") { } //使用反射来调用 MethodInfo act = typeof(Class1).GetMethod(method); string result1 = act.Invoke(new Class1(),null).ToString();

如果要用到参数,可在调用时直接传入,但我是在类里面定义一个HttpContent对象,然后在构造函数里赋值,代码如下:

public class Class1 { //如果需要使用到参数,就把HttpContext封装到类里的HttpContext里 HttpContext context; public Class1() { context = HttpContext.Current; } public string login() { string parameter = context.Request["xxxx"]; return ""; } }

这样就能避免的代码的臃肿了,希望能帮助各位!

评论区:

昵称:
内容:
验证码: 3462