回答
您必须为此使用泛型。例如,
protected T Test<T>(T parameter)
{
}
在这个例子中,“<T>
”告诉它代表一个类型的名称编译器,但你不知道这是在创造这个函数的上下文是什么。
protected int Test(string p) { ... }
protected string Test(DateTime p) { .... }
然后,你需要使用泛型。
protected T Test(T type) {
return type;
}
事实上,假设你有一组已知的参数和返回类型,它可以用简单的重载处理不是一种动态语言。要在C#中解决这个问题,您可以稍后返回一个通用对象和类型转换为任何您认为值应该是 - 不建议。你也可以返回一个接口,这样你并不真正在意某个特定的类实例。正如其他人指出的,你也可以使用泛型。这真的取决于你在函数体内需要/想要做什么,因为上面的所有方法都有其自身的局限性。
这里的问题是如果调用者在调用之前不知道类型。例如,只有一个字符串或int不是两个都有效。 – rolls 2017-06-23 05:00:32
@rolls - 当然他有。他将某种类型的变量(或常量)传递给该方法。他将返回值放入某种类型的变量中。他显然希望在不同类型的不同地方使用相同的方法。 – 2017-06-23 19:59:41
C#:那么你最终调用它像...
int foo;
int bar = Test<int>(foo);
虽然接受的答案是好的,它已经两年多,因为它是书面的,所以,我要补充一点,你可以使用:
protected dynamic methodname(dynamic input)
{
return input;
}
输入将返回为同一类型,和你不需要将该方法作为通用方法调用。
- 1. 返回动态类型
- 2. C#,动态返回类型
- 3. VB.NET - 从函数返回动态类值
- 4. 推导其参数的返回类型函数返回类型
- 5. 动态更改函数的返回类型
- 6. Java的泛型返回动态类型
- 7. 函数返回类型decission
- 8. Infere函数返回类型
- 9. typedefing函数返回类型
- 10. 让函数返回类型
- 11. 返回函数的函数的返回类型
- 12. 返回类型的回调函数
- 13. Datacontract和动态的返回类型WCF
- 14. .NET的动态返回类型方法
- 15. 流动型:返回类型的函数(K)=> OBJ [k]的
- 16. 函数的返回类型的需要
- 17. 小巧玲珑动态返回类型
- 18. 方法返回动态类型列表
- 19. 动态改变返回类型?
- 20. 函数/触发器的返回类型?
- 21. 递归函数的返回类型
- 22. Scala返回类型的元组函数
- 23. bool函数的返回类型
- 24. 函数Java的不同返回类型
- 25. 不同的Java函数返回类型
- 26. 此函数的返回类型
- 27. C#函数的返回类型
- 28. 返回类型的lambda函数指针
- 29. PostgreSQL函数的返回类型
- 30. c语言。函数的返回类型
@Shiko,其实如果你看的时间戳,这次来到亚当的答案之前。 – uchamp 2016-12-08 19:39:23
@uchamp我的不好,我会删除我的评论 – Shiko 2016-12-09 01:52:14