次のように、C# で誤ってコンストラクターをオーバーロードしてしまいました。
public MyClass(string myString)
{
// Some code goes here
}
public MyClass(string myString, bool myParameter = false)
{
// Some different code here
}
このコードを使用すると、私のプロジェクトは正常にコンパイルされました。コンストラクターを引数だけで呼び出した場合string
、C# はどのコンストラクターを使用するかをどのように決定するのでしょうか? この機能が構文的に許可されているのはなぜですか?