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

时间:2011-02-07 06:31:08

标签: c#

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

public delegate void XXX(int x);

声明委托类型时?

对我来说,参数名x未被使用,所以如果我们可以按如下方式重写它会更简单:

public delegate void XXX(int);

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

EDIT1:

public delegate TResult Func<T1,TResult>(T1 arg1)public delegate TResult Func<T1,TResult>(T1)更具可读性吗?

2 个答案:

答案 0 :(得分:4)

使用

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

在这两种情况下,这个名称都增加了帮助开发人员的意义。例如,我不知道你的x代表什么 - 但是把它命名为更好的东西,我会有一个线索。

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

答案 1 :(得分:2)

可能与您被迫指定方法参数名称的原因相同。首先,它有助于记录参数的用途。

哪个更具可读性?

public delegate void EventHandler(object source, EventArgs e);

public delegate void EventHandler(object, EventArgs);