23

这似乎是一个愚蠢的问题,但这只是出于好奇。

我们在 C# 中有两个特定的已定义委托:

Action 封装了任何带有 0 个或多个参数的“void”方法。
Func 封装了任何返回特定值类型并接受 0 个或多个参数的方法。

我的问题是:在哪些情况下建议定义自定义委托?
为什么你需要这样做?

提前致谢

4

2 回答 2

43

FuncorAction类型都不允许outorref参数,因此如果您需要使用这些委托,则必须定义自己的委托,例如:

public delegate bool TryParse<T>(string s, out T value);
于 2013-07-26T18:30:21.297 回答
2

在数千种情况下,您需要引用/指向一个与给定委托中的任何一个都不匹配的函数(因此是委托,如果函数的实际实现在运行时会有所不同,签名除外)。说

公共代表 T MyDel(T t, U u, V v);

于 2013-07-26T18:40:40.053 回答