Como o sistema de resolução de sobrecarga de método decide qual método chamar quando um valor nulo é passado?
Então, por exemplo, você tem um tipo como:
public class EffectOptions
{
public EffectOptions ( params object [ ] options ) {}
public EffectOptions ( IEnumerable<object> options ) {}
public EffectOptions ( string name ) {}
public EffectOptions ( object owner ) {}
public EffectOptions ( int count ) {}
public EffectOptions ( Point point ) {}
}
Aqui apenas dou o exemplo usando construtores, mas o resultado será o mesmo se eles fossem métodos não construtores no tipo em si, certo?
Então, quando você faz:
EffectOptions options = new EffectOptions (null);
qual construtor seria chamado e por quê?
Eu mesmo poderia testar isso, mas quero entender como o sistema de resolução de sobrecarga funciona (não tenho certeza se é assim que é chamado).