C# 根据参数名调用相应方法

本文介绍了如何使用C#反射技术来动态调用方法,特别是在需要根据参数来选择执行不同方法的场景下,避免大量if...else或switch...case。通过示例展示了如何封装一个利用反射调用方法的方法,并提及了调用静态和非公开方法的注意事项。此外,还探讨了如何获取变量的变量名。
摘要由CSDN通过智能技术生成

最近用了下C#反射,在此记录一下。

项目中有时会根据传过来的参数来调用具体的方法。通常用用if...else if...或是switch...case...进行判断,参数的分支少的情况下勉强应对,一旦分支多了,一来是影响代码美观,二是如果要增加一个或多个参数的情况下,不仅需要实现具体的方法,还要增加相应的判断。

此时,通过反射能较好发处理这种问题。下面是我封装的方法:

/// <summary>
/// 创建实例对象(有参数方法)
/// </summary>
/// <param name="NameSpace">命名空间</param>
/// <param name="ClassName">类名</param>
/// <param name="MethodName">方法名</param>
/// <param name="Parameters">参数数组</param>
/// <returns>实例</returns>
public static object CreateInstance(string NameSpace, string ClassName, string MethodName, object[] Parameters)
{
    Assembly assembly = Assembly.GetExecutingAssembly();
    var _class = NameSpace + "." + ClassName;
    var _obj = assembly.CreateInstance(_class, true);
    var _return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值