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