为 C# 中的 Func<Type1, Type2> 序列取短名称

Ale*_*lex 1 c# func

我有这样的代码:

private Func<Request, Response, byte[], string, string, Task> _started;
private Func<Request, Response, byte[], string, string, Task> _progress;
private Func<Request, Response, byte[], string, string, Task> _completed;
private Func<Request, Response, byte[], string, string, Task> _errorOccurred;
private Func<Request, Response, byte[], string, string, Task> _cancelled;
Run Code Online (Sandbox Code Playgroud)

我最好有类似的东西:

typedef Func<Request, Response, byte[], string, string, Task> StatusUpdateAsyncCallback; // in C++ way.
private StatusUpdateAsyncCallback _started;
// and so on.
Run Code Online (Sandbox Code Playgroud)

无法弄清楚如何用 Func 做到这一点。我习惯于委托(我没有这个问题,因为我可以为任何委托指定一个唯一的名称)但现在无法弄清楚如何为 Func 声明重复相同的内容。

我正在从委托类型的简单声明中迁移,delegate Task StatusUpdateAsyncCallback(Request req, Response resp, byte[] data, string account, string alias)因为我现在将依赖于一些特定于 Func 的能力(例如,可以制作一个扩展方法,该方法适用于具有一定数量参数的所有类型的 Func 委托,而“经典”委托类型以这种方式不兼容)。如果需要更多信息,可以在@Mant101 解释中找到如何编写扩展方法,该方法将使多播 C# 委托中的调用列表成员按顺序运行?

Rom*_*och 5

您可以使用using(在每个文件中):

using StatusUpdateAsyncCallback = 
      System.Func<Request, Response, byte[], string, string, System.Threading.Tasks.Task>;
Run Code Online (Sandbox Code Playgroud)

所有类型名称都应该是完全限定的。