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分钟内标记,如果允许的话