Przeciążenie konstruktora z parametrami domyślnymi

Przypadkowo przeciążyłem konstruktora w C # w następujący sposób:

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

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

Dzięki temu kodowi mój projekt został dobrze skompilowany. Jeśli wywołam konstruktora za pomocąstring argument, w jaki sposób C # decyduje, którego konstruktora chcę użyć? Dlaczego ta funkcjonalność jest dozwolona składniowo?

questionAnswers(4)

yourAnswerToTheQuestion