从参数类型派生方法 return 类型

Derive method return type from parameter type

我想知道是否可以创建这样的方法:

public var test (var value)
{
    // ...
    return value;
}  

意思是,如果value是一个bool,我想return一个bool,如果value是一个string,我要return一个string

根据您的最终陈述,您希望 return 与您在输入中收到的类型相同,因此,您可以使用通用函数

public T test<T>(T input)
{
    return input;
}

void Main()
{
    Console.WriteLine(test(true));
    Console.WriteLine(test(1));
    Console.WriteLine(test("Steve"));
}

More info on Generics

如果您的 return 类型应该与 value 参数的类型相同,您可以创建一个带有通用参数的方法:

public T Test<T>(T value)
{
    return value;
}

了解有关泛型的更多信息here

您提到您也可以使用 dynamic 关键字来执行此操作,但我建议不要在这种情况下使用 dynamic。在某些特殊情况下 dynamic 应该用于泛型,但它主要在处理 COM 互操作时变得相关。

我找到了一个方法:

public dynamic GetAnything(dynamic val)
{
    return val;
}