C#通过函数名字符串执行相应的函数
如果代码中函数过多,那么通过函数名字符串执行相应的函数会更加方便,也会使代码更为简单。
在C#中,通过函数名字符串执行相应的函数这项功能是在System. Reflection命名空间中实现的,使用的函数为GetMethod。若要使用此功能只需如下三步。
一.GetMethod函数定义在虚基类Type类中,在使用函数前应先获取一个Type对象,代码为:
Type t=typeof(Program); //括号中的为所要使用的函数所在的类的类名。 |
二.通过对象t便可以使用GetMethod函数了,代码如下:
MethodInfo mt = t.GetMethod("aabbcc",BindingFlags.Static); 注: GetMethod函数有6个重载函数,其中常用的有2个。 publicMethodInfo GetMethod(stringname) publicMethodInfo GetMethod(stringname,BindingFlagsbindingAttr) name为所要使用的函数名 bindingAttr为搜索范围 第一个函数对 name的搜索区分大小写。搜索范围包括公共静态方法和公共实例方法。若搜索的函数不在此范围内,则应使用第二个函数。 若成功搜索到函数,则返回非null值,否则返回非空值,在向下执行前应检查一下返回值,否则会报错。 |
三.获取到非空的MethodInfo类的实例mt后便可执行所要的函数了。
string str = (string)mt.Invoke(null,newobject[] { "1234567890123" }); 注: Invoke函数的原型如下: publicObject Invoke(Objectobj,Object[]parameters) 第一个参数为对其调用方法或构造函数的对象。如果方法是静态的,则应为null,否则必需给出一个实例,若在同一类中调用,则可指定为this。 第二个参数为调用的方法的参数列表。这是一个对象数组,这些对象与要调用的方法或构造函数的参数具有相同的数量、顺序和类型。如果没有任何参数,则 parameters应为nullNothingnullptrnull引用。 函数的返回值便为所调用的函数的返回值,若无返回值,则为null。在获取返回值前应进行强制类型转换。 |
四.示例如下:
using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespace Practice { class Program { static void Main(string[] args) { Type t = typeof(Program);//括号中的为所要使用的函数所在的类的类名。 MethodInfo mt = t.GetMethod("aabbcc",BindingFlags.Static); if (mt == null) { Console.WriteLine("没有获取到相应的函数!!"); } else { string str = (string)mt.Invoke(null,newobject[] { "1234567890123" }); Console.WriteLine(str); } Console.ReadKey(); } private static string aabbcc(string abc) { return abc; } } } |
C#通过函数名字符串执行相应的函数相关推荐
- javascript里将函数名字符串转为函数并执行
javascript中,如何将函数名字符串转变为函数并执行? "用 eval ",西蒙说. 咋弄呢?类似地: var mess = "hello world!" ...
- 函数调用通过函数名字符串调用函数【C语言版】
在写这篇文章之前,xxx已经写过了几篇关于改函数调用主题的文章,想要了解的朋友可以去翻一下之前的文章 问题引入 在C中,函数先定义,后使用.举个简单的例子 /********************* ...
- 通过函数名字符串调用函数【C语言版】
问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...
- c语言 怎么将字符串代入函数,通过函数名字符串调用函数【C语言版】
问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...
- 199 c 通过函数名字符串调用函数
通过函数名字符串调用函数 今天写c的作业时候想起来能不能用函数名字符串来调用函数 一.函数指针 第一个问题,函数名如何保存,我们需要用到函数指针 声明 type (*func)(type &, ...
- python 字符串转函数名_Python 使用函数名(字符串)调用函数(4种方法)
先看一个例子: >>> def foo(): print("foo") >>> def bar(): print("bar" ...
- 真-C++通过函数名字符串调用函数
当web客户端向服务器发起API调用时,服务端通常需要根据url参数调用对应的API函数. 为了正确调用字符串对应的函数,可能会存在以下写法. void fun1() {std::cout <& ...
- JS根据函数名字符串调用函数
转自百度知道:https://zhidao.baidu.com/question/1733819401878068867.html <script type="text/javascr ...
- vue 中watch函数名_vue中避免使用函数来绑定依赖
如果你正在使用vue编写业务,可能遇到一个数据比较多,他们都遵循相同的模式,需要在data里定义多个变量来绑定依赖,然后你不想在data里定义多个变量,在接口调回后每个都重新赋值,采用这种方式绑定依赖 ...
最新文章
- 伍六七带你学算法 入门篇-卡牌分组
- 用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)
- Tomcat安装及配置教程(超详细的图文教程)(亲测)
- .Net Core 读取文件时中文乱码问题的解决方法
- 【Flink】TableException: A raw type backed by type information has no serializable
- c语言程序设计笔记手写图片,C语言程序设计笔记.pdf
- FailSafe双机方案
- 7.python的字符串处理常见方法——《深入python3》
- 算法学习之路|反转链表
- java getbean不同实现_JavaBean的属性可读写,编写时set方法和get方法必须配对。
- 全球及中国双十烷基二甲基氯化铵(DDAC)行业现状动态及供需前景预测报告2022-2027
- 天创速盈:拼多多推广效果不好,哪里需要改善?
- 百度语音识别jar下载
- manjaro deepin 闪屏_微信聊天“闪屏”特效,整蛊效果100分!
- MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
- 一些计算两台主机之间进行socket通信的延迟的小程序
- 手机抓包的两种方法:wireshark抓包和fiddler抓包
- Three.js 开发之 物体围绕自己轴心旋转(二)
- db_ha集群配置文件参数含义详解
- 慕课网 小慕机器人总结