C# 默认方法参数
如何在不更改构造函数的情况下创建具有重载概念的方法 我想使用一个带参数的线程,但我不确定是否需要放置pratameters,因为有时我没有必要让该方法获取参数。同样,创建一个带有参数的方法是有必要的,但不是必须给出参数,我不想使用重载的概念C# 默认方法参数,c#,C#,如何在不更改构造函数的情况下创建具有重载概念的方法 我想使用一个带参数的线程,但我不确定是否需要放置pratameters,因为有时我没有必要让该方法获取参数。同样,创建一个带有参数的方法是有必要的,但不是必须给出参数,我不想使用重载的概念 public void DoIt(string text){ //do something with text //do other things } DoIt(); //the method will do other things without pa
public void DoIt(string text){
//do something with text //do other things
}
DoIt(); //the method will do other things without paying attention to do something with text
可以使用默认参数
public void DoIt(string text="")
通过这样做,当您不想使用参数时可以调用DoIt(),当您想在其中传递某个内容时可以调用DoIt(“sometstring”)当然,重载它,让最完整的方法处理参数或不处理参数,而重载则使用适当的参数调用该方法(如果它们在功能上足够相似,它们肯定应该如此——否则称新方法为完全不同的东西,表明这一点): 您也可以在以后的C#版本中使用,但这不是重载:它允许您为参数参数指定默认值,然后在调用中忽略这些参数。但是,这不是重载,您必须确保所有可选参数都是签名的尾部参数 不过,我不确定您认为构造函数是从哪里来的。在c#4及以上版本中,您可以为参数指定默认值,因此无需在调用站点指定它们:
public void DoIt(string text = "")
{
//do something with text
//do other things
}
然后您可以通过传递参数调用它,如下所示:
DoIt("parameterValue");
或者不传递参数,在这种情况下,将使用方法定义中指定的值:
DoIt(); // equivalent to DoIt("");
你为什么不想使用重载?你的问题几乎毫无意义。构造函数必须与类实例的创建有关,而不一定与方法有关。这还不清楚,你能提供更多代码和用法示例吗?请查看可选参数。关于这个问题的公认答案应该有帮助:@MostafaSarsour你不需要重载在这里,可选参数是为这样的casesaha设置的,因此没有其他方法(我必须使用重载),谢谢,但我的目的不是给它任何参数,即使是null:)是的,这就是我所说的谢谢你+1弄清楚OP到底是什么asking@MostafaSarsour您的方法调用仍在此处获取参数。
DoIt(); // equivalent to DoIt("");