通过设计,为什么在声明委托类型时必须指定参数名称?

xpo*_*ort 5 c#

为什么我们必须x如下指定参数名称

public delegate void XXX(int x);
Run Code Online (Sandbox Code Playgroud)

在声明委托类型时?

对我来说,参数名称x是未使用的,因此如果我们可以重写如下,它将更简单:

public delegate void XXX(int);
Run Code Online (Sandbox Code Playgroud)

请让我知道为什么C#设计师"强迫"我们指定参数名称.

EDIT1:

public delegate TResult Func<T1,TResult>(T1 arg1)不是更具有可读性public delegate TResult Func<T1,TResult>(T1)

Mar*_*ell 6

用于:

  • 在对调用进行编码时,提供合理的智能感知并帮助开发人员知道将 4 个字符串中的哪一个传递给方法(字符串,字符串,字符串,字符串)(例如)
  • 在其他工具中 - 例如实现一个事件(或其他委托)并按下tab让工具生成一个方法存根(来自委托的参数名称成为方法存根的参数名称)

在这两种情况下,此名称都增加了有助于开发人员的含义。例如,我不知道x代表什么——但给它命名更好的东西,我就会有线索。

作为替代方案,使用Action<int>并忘记它。