指定命名参数

时间:2014-07-15 14:50:23

标签: 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 && !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的情况,我错过了明显的

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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