Перегрузка, которая не требует каких-либо дополнительных параметров для автоматического заполнения, предпочтительнее той, которая делает это. Однако такого предпочтения нет между автоматическим заполнением одного аргумента и более чем одним - поэтому, например, это приведет к ошибке времени компиляции:
void Foo(int x, int y = 0, int z = 0) {}
void Foo(int x, int y = 0) {}
...
Foo(5);
Обратите внимание, что Foo (5, 5) будет преобразован во второй метод, потому что тогда он не требует автоматического заполнения каких-либо дополнительных параметров.
Из раздела 7.5.3.2 спецификации C # 4:
В противном случае, если все параметры МП имеют
соответствующий аргумент, тогда как
аргументы по умолчанию должны быть
заменить по крайней мере один необязательный
параметр в MQ, то MP лучше, чем
MQ.
Я думаю, что в большинстве случаев такое поведение ожидают большинство людей, если честно. Странно, когда вы вводите в базовый класс методы, но так было всегда.