如果代码中函数过多,那么通过函数名字符串执行相应的函数会更加方便,也会使代码更为简单。

在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#通过函数名字符串执行相应的函数相关推荐

  1. javascript里将函数名字符串转为函数并执行

    javascript中,如何将函数名字符串转变为函数并执行? "用 eval ",西蒙说. 咋弄呢?类似地: var mess = "hello world!" ...

  2. 函数调用通过函数名字符串调用函数【C语言版】

    在写这篇文章之前,xxx已经写过了几篇关于改函数调用主题的文章,想要了解的朋友可以去翻一下之前的文章 问题引入 在C中,函数先定义,后使用.举个简单的例子 /********************* ...

  3. 通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  4. c语言 怎么将字符串代入函数,通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  5. 199 c 通过函数名字符串调用函数

    通过函数名字符串调用函数 今天写c的作业时候想起来能不能用函数名字符串来调用函数 一.函数指针 第一个问题,函数名如何保存,我们需要用到函数指针 声明 type (*func)(type &, ...

  6. python 字符串转函数名_Python 使用函数名(字符串)调用函数(4种方法)

    先看一个例子: >>> def foo(): print("foo") >>> def bar(): print("bar" ...

  7. 真-C++通过函数名字符串调用函数

    当web客户端向服务器发起API调用时,服务端通常需要根据url参数调用对应的API函数. 为了正确调用字符串对应的函数,可能会存在以下写法. void fun1() {std::cout <& ...

  8. JS根据函数名字符串调用函数

    转自百度知道:https://zhidao.baidu.com/question/1733819401878068867.html <script type="text/javascr ...

  9. vue 中watch函数名_vue中避免使用函数来绑定依赖

    如果你正在使用vue编写业务,可能遇到一个数据比较多,他们都遵循相同的模式,需要在data里定义多个变量来绑定依赖,然后你不想在data里定义多个变量,在接口调回后每个都重新赋值,采用这种方式绑定依赖 ...

最新文章

  1. 伍六七带你学算法 入门篇-卡牌分组
  2. 用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)
  3. Tomcat安装及配置教程(超详细的图文教程)(亲测)
  4. .Net Core 读取文件时中文乱码问题的解决方法
  5. 【Flink】TableException: A raw type backed by type information has no serializable
  6. c语言程序设计笔记手写图片,C语言程序设计笔记.pdf
  7. FailSafe双机方案
  8. 7.python的字符串处理常见方法——《深入python3》
  9. 算法学习之路|反转链表
  10. java getbean不同实现_JavaBean的属性可读写,编写时set方法和get方法必须配对。
  11. 全球及中国双十烷基二甲基氯化铵(DDAC)行业现状动态及供需前景预测报告2022-2027
  12. 天创速盈:拼多多推广效果不好,哪里需要改善?
  13. 百度语音识别jar下载
  14. manjaro deepin 闪屏_微信聊天“闪屏”特效,整蛊效果100分!
  15. MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
  16. 一些计算两台主机之间进行socket通信的延迟的小程序
  17. 手机抓包的两种方法:wireshark抓包和fiddler抓包
  18. Three.js 开发之 物体围绕自己轴心旋转(二)
  19. db_ha集群配置文件参数含义详解
  20. 慕课网 小慕机器人总结

热门文章

  1. 聊天窗口内容滚动到底部的方法scrollTop和scrollIntoView
  2. 20050714日记
  3. 一文读懂天翼物联网平台(AIoT)
  4. Python——数字金字塔
  5. IE6、IE7、IE8之IE多版本共存的几种方法(转)
  6. 利用移动硬盘+路由器搭建局域网云存储
  7. Spark执行流程详解
  8. 在Centos下安装java jdk
  9. 第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组
  10. easyx的使用(1)