猿问

从参数类型派生方法返回类型

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


public var test (var value)

{

    // ...

    return value;

}  

意思是,如果value是 a bool,我想返回 a bool,如果value是 a string,我想返回 a string,等等。


jeck猫
浏览 98回答 3
3回答

慕雪6442864

如果您的返回类型应该与value参数的类型相同,您可以创建一个带有泛型参数的方法:public T Test<T>(T value){     return value; }您提到您也可以使用关键字来做到这一点,但我建议不要在这样的场景中dynamic使用。dynamic在某些特殊情况dynamic下,应该使用泛型,但它主要在处理 COM 互操作时变得相关。

饮歌长啸

根据您的最终声明,您希望返回在输入中收到的相同类型,因此,您可以使用通用函数来完成public T test<T>(T input){    return input;}void Main(){    Console.WriteLine(test(true));    Console.WriteLine(test(1));    Console.WriteLine(test("Steve"));}

翻阅古今

我找到了一个方法:public&nbsp;dynamic&nbsp;GetAnything(dynamic&nbsp;val){&nbsp; &nbsp;&nbsp;&nbsp;return&nbsp;val; }
随时随地看视频慕课网APP
我要回答