Пара баллов:
Во-первых, предлагаемая функция (неявное "this." При вызове метода расширения) ненужна . Методы расширения были необходимы для понимания запросов LINQ так, как мы хотели; получатель всегда указывается в запросе, поэтому нет необходимости поддерживать это неявно, чтобы заставить LINQ работать.
Во-вторых, эта функция работает против с более общим дизайном методов расширения: а именно, что методы расширения позволяют расширять тип, который вы не можете расширять самостоятельно , потому что это интерфейс, и вы не знаете реализацию, или потому что вы знаете реализацию, но не имеете исходного кода.
Если вы находитесь в сценарии, в котором вы используете метод расширения для типа внутри этого типа , то у вас do есть доступ к исходному коду. Почему вы сначала используете метод расширения? Вы можете написать метод экземпляра самостоятельно, если у вас есть доступ к исходному коду расширенного типа, а затем вы не не нужно использовать метод расширения вообще! Ваша реализация может затем воспользоваться доступом к закрытому состоянию объекта, что недоступно для методов расширения.
Упрощение использования методов расширения из типа, к которому у вас есть доступ, стимулирует использование методов расширения вместо методов экземпляра. Методы расширения хороши, но обычно лучше использовать метод экземпляра, если он у вас есть.
Учитывая эти два момента, бремя больше не ложится на разработчика языка, объясняющего, почему эта функция не существует. Теперь вам приходится объяснять, почему должно . Особенности имеют огромные затраты, связанные с ними. Эта функция не является необходимой и работает против заявленных целей разработки методов расширения; почему мы должны брать на себя расходы по его внедрению? Объясните, какой привлекательный, важный сценарий обеспечивается этой функцией, и мы рассмотрим возможность ее реализации в будущем. Я не вижу ни одного убедительного, важного сценария, который бы оправдывал его, но, возможно, есть один, который я пропустил.