【发布时间】:2018-06-26 18:40:41
【问题描述】:
我有一个 C# 应用程序。
我有几个不同的函数,它们具有不同的返回类型和传递给每个函数的不同参数。
我知道我能做到:
public object RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
但我可能有 2 个要通过的函数。
第一个函数如本例所示。它接受一个字符串并返回一个 int。但是如果我想传递一个对象或根本不传递参数等怎么办?
请问这里的通用选项是什么。
谢谢
@人 我在这里有很多好的建议。这就是我喜欢这个网站的原因。我需要冷静下来,喝杯茶,仔细看看这些建议。
我保证我会回应。
谢谢大家!
【问题讨论】:
-
让
RunTheMethod本身是通用的? -
您如何期望
RunTheMethod知道将哪些参数传递给函数?在某些情况下运行该方法是否通过和int和string另一个? -
@DaveShaw 嗨,我是这里的新手。泛型方法是否必须始终具有相同的签名?可以动态吗?我问这个问题的原因是我有做事的方法(显然:))并且我使用一种复杂的方式在 wpf 应用程序中显示繁忙的指示器。所以,我想我可以把我调用这个“忙碌”的方式放到这个通用函数中,然后传递这个函数来执行代码逻辑。我将有许多具有不同签名的方法。只是探索选项并希望向这里的人学习:)
-
@UnholySheep 啊,您是否建议将函数传递给函数,然后传递给函数?
-
那么您只需要使用
Action,因为您没有提供参数或使用通用工作函数的返回值。() => MyWork(123, "Canada")