Sobrecarga de construtor com parâmetros padrão

Eu acidentalmente sobrecarreguei um construtor em C # da seguinte maneira:

public MyClass(string myString) 
{
    // Some code goes here 
}

public MyClass(string myString, bool myParameter = false) 
{
   // Some different code here
}

Com este código meu projeto compilado bem. Se eu chamo o construtor com apenas umstring argumento, como o C # decide qual construtor eu quero usar? Por que essa funcionalidade é permitida sintaticamente?

questionAnswers(4)

yourAnswerToTheQuestion