相当于 C# 中 Action<> and/or Func<> 的 typedef

Equivalent of typedef in c# for Action<> and/or Func<>

谷歌搜索后看起来不太乐观,但我想知道在 C# 中使用 Action<T>Func<in T, out TResult> 时是否有某种别名或类型定义的方法?

我已经看过 Equivalent of typedef in c#,它说在一个编译范围内您可以在某些情况下使用 using 构造,但这似乎不适用于 ActionFunc 据我所知。

我想这样做的原因是我想将一个动作用作多个函数的参数,如果我在某个时间点决定更改动作,那么有很多地方需要更改作为参数类型和变量类型。

?typedef? MyAction  Action<int, int>;

public static SomeFunc(WindowClass window, int number, MyAction callbackAction) {
   ...
   SomeOtherFunc(callbackAction);
   ...
}

// In another file/class/...
private MyAction theCallback;

public static SomeOtherFunc(MyAction callbackAction) {
    theCallback = callbackAction;
}

是否有一些构造可以使用,可以定义代码段中指示的 MyAction

经过更多搜索后,似乎 delegate 来拯救(参见 Creating delegates manually vs using Action/Func delegatesA: 自定义委托类型与 Func 和 Action)。请评论为什么这不是解决方案或可能存在的陷阱。

有了委托,我可以重写给定代码示例的第一行:

public delegate void MyAction(int aNumber, int anotherNumber);
// Keep the rest of the code example

// To call one can still use anonymous actions/func/...
SomeFunc(myWindow, 109, (int a, int b) => Console.Writeline);
using System;

namespace Example
{
    using MyAction = Action<int>;

    internal class Program
    {
    }

   private void DoSomething(MyAction action)
   {
   }
}