根据方法名执行方法的例子
来源:互联网 发布:伪装地理位置软件哪个 编辑:程序博客网 时间:2024/06/01 19:05
今天在讲到动态执行方法的时候,我们讨论到了Delegate.CreateDelegate的方法。但也有下面这样的一个更加通用的方法:可以执行任何方法,传递任意个数的参数,而无需定义delegate
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { //这个例子演示了如何通过methodInfo动态执行方法 MethodInfo mi = typeof(Helper).GetMethod("StaticMethod"); mi.Invoke(null, null);//因为是静态方法,所以第一个参数直接忽略 MethodInfo mi2 = typeof(Helper).GetMethod("InstanceMethod"); Helper h = new Helper(); mi2.Invoke(h, null);//因为是实例方法,所以第一个参数是一个对象实例,第二个参数代表了参数 MethodInfo mi3 = typeof(Helper).GetMethod("Math"); int result = (int)mi3.Invoke(h, new object[] { 1, 2 }); //传递参数并接收结果 Console.WriteLine(result); Console.Read(); } } class Helper { public static void StaticMethod() { Console.WriteLine("静态方法在执行"); } public void InstanceMethod() { Console.WriteLine("实例方法在执行"); } public int Math(int a, int b) { return a + b; } }}.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }
- 根据方法名执行方法的例子
- JS根据变量保存方法名并执行方法
- 根据方法名获取方法并动态执行
- java反射----根据方法名,类和对象执行对象的该方法
- httpclient接口测试利用反射根据参数名执行方法的使用示例
- 根据Handle获取进程名的方法
- java根据方法名动态调用方法
- Python根据方法名调用方法
- Delphi根据方法名调用方法
- Java如何根据类名和方法名创建类的实例,并调用对应方法?
- js动态方法名执行
- DELPHI 通过方法名执行方法
- C# 根据进程名关闭进程方法
- 根据属性名调用set/get方法
- C# 根据客户端浏览器执行不同的处理方法
- EAS开发中根据单据id获取实体名的方法(bosType、表名等)
- 根据类名字符串创建类名并且调用类里的方法
- delphi中执行字符串表示的方法名
- RIA 亮剑行动
- Silverlight中的多语言支持中几个特殊之处
- Silverlight中使用自定义服务
- 你需要知道的隐式转换操作符
- Silverlight的跨站策略和跨站策略文件
- 根据方法名执行方法的例子
- 关于Thread.IsAlive属性
- 事件处理程序的处理顺序问题
- 支持取消操作和暂停操作的Backgroundworker
- 线程池(ThreadPool)
- SystemEvents和SystemEvents线程
- 默认情况下程序启动后到底是几个线程?
- 多线程的最佳实践
- 如何:将 TraceSource 和筛选器与跟踪侦听器一起使用(转载)