次の 2 つの関数があるとします。
public void Test(int Param1)
{
//do something
}
public void Test(int Param1, int Param2 = 1)
{
//do something
}
これを実行すると: Test(2)
コンパイラは実行する関数をどのように認識しますか? それらのいずれかである可能性があります: 1 つのパラメーターのみを受け入れる最初のもの、または 1 つまたは 2 つのパラメーターを受け入れる 2 番目のもの。
実際、上記のコードがコンパイルされることにも驚いています。