¿Cómo decide el sistema de resolución de sobrecarga de métodos qué método llamar cuando se pasa un valor nulo?

Entonces, por ejemplo, tienes un 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 ) {}

}

Aquí solo doy el ejemplo usando constructores, pero el resultado será el mismo si fueran métodos no constructores en el tipo en sí, ¿verdad?

Así que cuando lo haces:

EffectOptions options = new EffectOptions (null);

¿Qué constructor se llamaría y por qué?

Podría probar esto yo mismo, pero quiero entender cómo funciona el sistema de resolución de sobrecarga (no estoy seguro de si así se llama).

Respuestas a la pregunta(2)

Su respuesta a la pregunta