c# - 按照设计,为什么在声明委托(delegate)类型时必须指定参数名称?

标签 c#

为什么一定要指定参数名x如下

public delegate void XXX(int x);

在声明委托(delegate)类型时?

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

public delegate void XXX(int);

请告诉我为什么 C# 设计者“强制”我们指定参数名称。

编辑1:

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

最佳答案

使用:

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

在这两种情况下,这个名称都增加了有助于开发人员的含义。例如,我不知道你的 x 是什么代表 - 但给它起一个更好的名字,我会有一个线索。

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

关于c# - 按照设计,为什么在声明委托(delegate)类型时必须指定参数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918633/

相关文章:

c# - Interlocked 用于递增/模拟 bool 值,这安全吗?

c# - 如何将 Bson 文档反序列化为 POCO?

c# - 值(value)提供者的惰性评估依赖注入(inject)(Unity,结构图,Ninject ...)

c# .net xpath 遍历时不挑选元素

c# - .NET 框架的精简版

C#:将特定枚举类型的数组作为 params object[] 参数传递

c# - 如何创建 .aspx 页面列表?

c# - 由于先决条件,Unity Android 运行失败

c# - 在 C# 中将产品版本和文件版本设置为不同的数字

c# - makepri.exe 是如何集成到 MSBuild 中的?