Ответ 1
Он хорошо указан в Спецификации языка С#, глава 7.4.3.2, "Лучшая функция":
В противном случае, если MP применим в своей нормальной форме, а MQ имеет массив params и применим только в его расширенной форме, то MP лучше, чем MQ
В противном случае, если MP имеет меньше объявленных параметров, чем MQ, MP лучше, чем MQ. Это может произойти, если оба метода имеют массивы params и применимы только в их расширенных формах.
Fwiw, спецификация языка С# является очень читаемым документом и может помочь вам решить эти головоломки самостоятельно. У вас есть это на вашей машине, найдите его в каталоге установки Visual Studio (например, c:\program files\microsoft visual studio 9.0) в подкаталоге vС#\specification\1033.
Другим хорошим является стандартный документ Ecma-335, свободно доступный как Загрузка PDF. Он определяет поведение CLR и JIT-компилятора, отличный материал, чтобы понять, почему С# (и CLR) выполняют то, что они делают. Рекомендуется.