Ein paar Punkte:
Zunächst einmal ist die vorgeschlagene Funktion (implizites "this" bei einem Aufruf einer Erweiterungsmethode) nicht erforderlich . Erweiterungsmethoden waren erforderlich, damit das Verständnis von LINQ-Abfragen wie gewünscht funktioniert. Der Empfänger wird immer in der Abfrage angegeben, daher ist es nicht erforderlich, dies implizit zu unterstützen, damit LINQ funktioniert.
Zweitens arbeitet die Funktion gegen den allgemeineren Design von Erweiterungsmethoden: nämlich, dass die Erweiterungsmethoden ermöglichen es Ihnen , eine Art zu erweitern , dass Sie sich nicht erweitern können , sei es, weil es sich um eine Schnittstelle ist , und Sie wissen nicht , die Implementierung, oder weil Sie tun kennen die Implementierung, haben aber nicht den Quellcode.
Wenn Sie in dem Szenario, wo Sie eine Erweiterungsmethode für einen Typ verwenden in dieser Art dann Sie haben Zugriff auf den Quellcode. Warum verwenden Sie dann überhaupt eine Erweiterungsmethode? Sie können selbst eine Instanzmethode schreiben, wenn Sie Zugriff auf den Quellcode des erweiterten Typs haben, und dann müssen Sie überhaupt keine Erweiterungsmethode verwenden! Ihre Implementierung kann dann den Zugriff auf den privaten Status des Objekts nutzen, den Erweiterungsmethoden nicht können.
Wenn Sie die Verwendung von Erweiterungsmethoden innerhalb eines Typs, auf den Sie Zugriff haben, vereinfachen möchten, wird die Verwendung von Erweiterungsmethoden gegenüber Instanzmethoden empfohlen. Erweiterungsmethoden sind großartig, aber es ist normalerweise besser, eine Instanzmethode zu verwenden, wenn Sie eine haben.
Angesichts dieser beiden Punkte muss der Sprachdesigner nicht mehr erklären, warum die Funktion nicht vorhanden ist. Es liegt nun an Ihnen zu erklären, warum es sollte . Features sind mit enormen Kosten verbunden. Diese Funktion ist nicht erforderlich und widerspricht den angegebenen Entwurfszielen von Erweiterungsmethoden. Warum sollten wir die Kosten für die Implementierung übernehmen? Erklären Sie, welches überzeugende, wichtige Szenario durch diese Funktion ermöglicht wird, und wir werden in Betracht ziehen, es in Zukunft zu implementieren. Ich sehe kein zwingendes, wichtiges Szenario, das dies rechtfertigt, aber vielleicht gibt es eines, das ich verpasst habe.