C# 指定命名参数

C# 指定命名参数,c#,arguments,optional-arguments,C#,Arguments,Optional Arguments,我有一个签名如下的函数 public static void raiseEventtoForm(string message, Color fc, Color bc, int messageType, EventLogEntryType eventType = EventLogEntryType.Information, bool frmSQL = false) { if(eventType != EventLogEntryType.Information &a

我有一个签名如下的函数

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情况,我忽略了明显的第四个参数:
int-messageType
int-messafeType
不是可选参数(没有默认设置)因此,它不是有效的方法调用

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

请发布准确的错误消息。它很可能会抱怨没有传递必要的参数,如
消息
。因为这是一个愚蠢的问题,没有看到明显的问题,我应该删除它还是留下它?我不知道-你有答案-所以请保留它。若您决定保留-通过添加错误消息和格式化代码来避免水平滚动,使问题变得更好。确保在邮件中添加错误代码(如CSxxxx)。谢谢-就是这样-不能相信我错过了-我会在6分钟内标记,如果允许的话