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")
{
}
因此,无论何时忽略第二个参数,它都将作为默认值发送(在我的示例中)