C# 如何切换参数类型

C# 如何切换参数类型,c#,reflection,C#,Reflection,我有方法1、方法2和方法3 Method1返回int类型。 Method2返回类型字符串 而Method3根据method1或method2的返回类型,接受int或string参数 public void Method3 (ParameterType parm) { logic... } 问题是: 如何根据Method1和Method2的类型切换传递的参数类型。这当然是问题的简化版本。事实上,有许多方法返回不同类型的值。基于当前调用的方法,例如Method1,如何提取其类型,然后将Method

我有方法1、方法2和方法3

Method1返回int类型。 Method2返回类型字符串

而Method3根据method1或method2的返回类型,接受int或string参数

public void Method3 (ParameterType parm) { logic... }
问题是: 如何根据Method1和Method2的类型切换传递的参数类型。这当然是问题的简化版本。事实上,有许多方法返回不同类型的值。基于当前调用的方法,例如Method1,如何提取其类型,然后将Method3的ParameterType替换为新类型。

这称为重载:


您可以定义一个通用方法,例如

public void Method3<T>(T parm)
{
    // ...
}

请展示您的代码看起来像泛型或重载的示例,如答案中所示可能是解决方案,但“基于当前调用的方法”的含义并不明确。@AlexeiLevenkov不幸的是,我目前无法访问代码。然而,在现实世界中,这是一个ASP.NET MVC应用程序。Methods3是一个Action方法,每次用户单击菜单项时,我都会从中提取一个方法(Method1或Method2)的名称,该名称与特定类型的Entityframework方法(可以是任何类型)相匹配。因此,我只需要为Action方法提供EF MethodName及其类型。事情就是这样。我希望这是有道理的。
public void Method3<T>(T parm)
{
    // ...
}
public void Method3<T>(T parm) where T : class
{
    // ...
}

public void Method3(int parm)
{
    // ...
}

public void Method3(double parm)
{
    // ...
}