Если разрешение перегрузки встречается с применимым методом, оно будет использовать его вместо любых методов, объявленных в базовых классах.Таким образом, в этом случае, как будто List<T>.Sort
даже не существует для первых двух вызовов.
Третий вызов не применим, поэтому он найдет List<T>.Sort
вместо этого.
Если вы объявите другую перегрузку для Sort
в пределах MyList
(но вместо MyComparison<T>
вместо *1014*) , тогда вызов метода будет неоднозначным.
См. Мою статью по разрешению перегрузки *1020* для получения более подробной информации.
PS Надеюсь, вам понравится книга:)