C# 当一个方法有可选参数时,调用什么?

C# 当一个方法有可选参数时,调用什么?,c#,C#,我在类库中有以下方法: public virtual void PrintError(Exception e, string verboseMessage) { } 我想做的是使verboseMessage成为可选的(因此,如果您愿意,您可以用PrintError(e);来调用它。我试图研究这个问题,但我不知道这个术语是什么-这是如何实现的,我应该研究什么?这正是所谓的 你可以写: public virtual void PrintError(Exception e,

我在类库中有以下方法:

    public virtual void PrintError(Exception e, string verboseMessage)
    {

    }
我想做的是使verboseMessage成为可选的(因此,如果您愿意,您可以用
PrintError(e);
来调用它。我试图研究这个问题,但我不知道这个术语是什么-这是如何实现的,我应该研究什么?

这正是所谓的

你可以写:

public virtual void PrintError(Exception e, string verboseMessage = null)
{
   //... etc
}
其中可选参数
string verboseMessage
的默认值将为
null
,然后您可以这样调用该方法:

MyClass.PrintError(someException);
public virtual void PrintError(Exception e, string verboseMessage = "defaul value")
{

}
这相当于:

MyClass.PrintError(someException, null);
这就是所谓的准确

你可以写:

public virtual void PrintError(Exception e, string verboseMessage = null)
{
   //... etc
}
其中可选参数
string verboseMessage
的默认值将为
null
,然后您可以这样调用该方法:

MyClass.PrintError(someException);
public virtual void PrintError(Exception e, string verboseMessage = "defaul value")
{

}
这相当于:

MyClass.PrintError(someException, null);

可选参数应在方法声明中设置,如下所示:

MyClass.PrintError(someException);
public virtual void PrintError(Exception e, string verboseMessage = "defaul value")
{

}

因此,无论何时忽略第二个参数,它都将作为
默认值发送(在我的示例中)。

应在方法声明中设置可选参数,如下所示:

MyClass.PrintError(someException);
public virtual void PrintError(Exception e, string verboseMessage = "defaul value")
{

}
因此,无论何时忽略第二个参数,它都将作为
默认值发送(在我的示例中)