कुछ बिंदु:
सबसे पहले, प्रस्तावित सुविधा (एक विस्तार विधि कॉल पर "यह निहित है") अनावश्यक है । LINQ क्वेरी समझ के लिए एक्सटेंशन तरीके आवश्यक थे जिस तरह से हम चाहते थे; रिसीवर को हमेशा क्वेरी में बताया जाता है, इसलिए LINQ काम करने के लिए इसे निहित समर्थन करने के लिए आवश्यक नहीं है।
दूसरा, फीचर एक्सटेंशन विधियों के अधिक सामान्य डिजाइन के खिलाफ काम करता है : अर्थात्, विस्तार विधियां आपको एक प्रकार का विस्तार करने की अनुमति देती हैं, जिसे आप स्वयं नहीं बढ़ा सकते हैं , क्योंकि यह एक इंटरफ़ेस है और आपको कार्यान्वयन का पता नहीं है, या क्योंकि आप करते हैं कार्यान्वयन पता है, लेकिन स्रोत कोड नहीं है।
यदि आप उस प्रकार के परिदृश्य में हैं जहां आप उस प्रकार के लिए एक एक्सटेंशन विधि का उपयोग कर रहे हैं तो आपके पास स्रोत कोड तक पहुंच है। आप पहली बार एक्सटेंशन पद्धति का उपयोग क्यों कर रहे हैं? यदि आप विस्तारित प्रकार के स्रोत कोड तक पहुंच रखते हैं, तो आप खुद एक इंस्टेंस विधि लिख सकते हैं और फिर आपको एक्सटेंशन विधि का उपयोग करने की आवश्यकता नहीं है! आपका कार्यान्वयन तब वस्तु की निजी स्थिति तक पहुंच का लाभ उठा सकता है, जो विस्तार विधियां नहीं कर सकती हैं।
एक प्रकार के भीतर से विस्तार विधियों का उपयोग करना आसान बना देता है, जिस पर आपके पास पहुंच है, उदाहरण के तरीकों पर विस्तार विधियों के उपयोग को प्रोत्साहित करना। एक्सटेंशन विधियां महान हैं, लेकिन आमतौर पर इंस्टेंस विधि का उपयोग करना बेहतर होता है यदि आपके पास एक है।
उन दो बिंदुओं को देखते हुए, भाषा डिजाइनर पर बोझ यह बताने के लिए नहीं रह जाता है कि यह सुविधा मौजूद क्यों नहीं है। अब यह आप पर पड़ता है कि आपको यह क्यों समझाना चाहिए । सुविधाएँ उनके साथ जुड़े हुए हैं। यह सुविधा आवश्यक नहीं है और विस्तार विधियों के निर्दिष्ट डिजाइन लक्ष्यों के खिलाफ काम करती है; हमें इसे लागू करने की लागत क्यों लेनी चाहिए? बताएं कि इस विशेषता से कौन सा सम्मोहक, महत्वपूर्ण परिदृश्य सक्षम है और हम भविष्य में इसे लागू करने पर विचार करेंगे। मुझे ऐसा कोई सम्मोहक, महत्वपूर्ण परिदृश्य नहीं दिख रहा है जो इसे सही ठहराता हो, लेकिन शायद एक ऐसा है जिसे मैंने याद किया है।