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).