【问题标题】:Specifying named parameter指定命名参数
【发布时间】:2014-09-05 20:02:54
【问题描述】:

我有一个带有以下签名的函数

public static void raiseEventtoForm(string message, Color fc, Color bc, int messageType, 
    EventLogEntryType eventType = EventLogEntryType.Information, bool frmSQL = false)
    {
        if(eventType != EventLogEntryType.Information && !frmSQL)
            postEventLog(message, eventType);
        MessageEvent(message, fc, bc, frmSQL);
    }

但是当我尝试调用它并设置它时,我得到一个无效的参数传递,我尝试了以下方法。我做错了什么?

ProgramEvents.raiseEventtoFrom("example", Color.Black, Color.White, frmSQL:true);
ProgramEvents.raiseEventtoFrom("example", Color.Black, Color.White, frmSQL:= true);

编辑: 错误:没有重载需要 4 个参数

*这是 /facepalm 的情况,我错过了明显的情况

【问题讨论】:

  • 请发布准确的错误信息。很可能它抱怨没有传递像message这样的必需参数。
  • 既然这是一个愚蠢的、不可见的问题,我应该删除它还是离开它?
  • 我不知道 - 你有答案 - 所以请随时保留它。如果您决定保留 - 通过添加错误消息和格式代码以避免水平滚动来使问题变得更好。确保在消息中添加错误代码(如 CSxxxx)。

标签: c# arguments optional-arguments


【解决方案1】:

您只能省略指定了默认值的参数。 但是您留下了没有任何默认值的messageType 参数,这就是您出错的原因。

【讨论】:

    【解决方案2】:

    int messafeType 不是可选参数(没有默认设置),因此它不是有效的方法调用

    【讨论】:

      【解决方案3】:

      您没有指定第四个必需参数:int messageType

      【讨论】:

      • 谢谢你——就是这样——不敢相信我错过了——我会在 6 分钟内做标记
      猜你喜欢
      • 2020-07-23
      • 1970-01-01
      • 2019-06-16
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多