C# 构造函数和方法重载

C# 构造函数和方法重载,c#,overloading,C#,Overloading,有没有什么方法可以实现这种重载 public SampleConstructor() : this (null, null) { } public SampleConstructor(Object a, Object b) { } …但在方法上?我指的是它使用的方式:称其为重载 所以,如果可能的话,我不想用这种方法调用方法重载: public void SampleMethod() { SampleMethod(null) } public void SampleMethod(Object a

有没有什么方法可以实现这种重载

public SampleConstructor() : this (null, null) { }
public SampleConstructor(Object a, Object b) { }
…但在方法上?我指的是它使用的方式:称其为重载

所以,如果可能的话,我不想用这种方法调用方法重载:

public void SampleMethod() { SampleMethod(null) }
public void SampleMethod(Object a) { }
…并使用构造方式调用其重载

附言

我知道,而且已经试过了

public void SampleMethod() : this (null) { }
public void SampleMethod(Object a) { }
…不起作用


那么,有没有办法使:重载在方法上起作用?因为这样做更简单,而不是从内部调用重载。或者,这甚至是不可能的?

您可以使用默认值:


public void SampleMethodObject a=null{}

public void SampleMethod:this null{}这永远不会起作用,因为这是您的类,您最好选择public void SampleMethod:this.SampleMethod null{}也不存在。我认为简短的答案是否定的。您试图解决什么问题吗?是的,这是我需要确定的答案。我并没有试图解决什么特别的问题,只是代码可读性的问题。请把它写在答案里,我会接受的。谢谢。我不是反对者,但我会尽量避免默认值。与重载相比,它们往往会使事情变得更复杂、更难维护。@JonB但它们不只是编译成重载方法吗?不确定。但是它们会降低源代码的可读性,如果你不小心的话,可能会导致错误。@JonB,我们不同意,但这就是观点。的确!我也不是没有用过它们: