मैं सी # 4.0 के बारे में एंडर्स की बात देख रहा था और सी # 5.0 के चुपके पूर्वावलोकन , और यह मेरे बारे में सोच रहा था कि जब वैकल्पिक पैरामीटर सी # में उपलब्ध हैं, तो उन तरीकों को घोषित करने के लिए अनुशंसित तरीका क्या होगा जो निर्दिष्ट सभी मापदंडों की आवश्यकता नहीं है?
उदाहरण के लिए कुछ ऐसा होता है जैसे FileStream
कक्षा में लगभग पंद्रह अलग-अलग निर्माता होते हैं जिन्हें तार्किक 'परिवारों' में विभाजित किया जा सकता IntPtr
है SafeFileHandle
।
FileStream(string,FileMode);
FileStream(string,FileMode,FileAccess);
FileStream(string,FileMode,FileAccess,FileShare);
FileStream(string,FileMode,FileAccess,FileShare,int);
FileStream(string,FileMode,FileAccess,FileShare,int,bool);
मुझे ऐसा लगता है कि इस प्रकार के पैटर्न को तीन बिल्डरों के बजाय सरल बनाया जा सकता है, और जो डिफ़ॉल्ट हो सकते हैं उनके लिए वैकल्पिक मापदंडों का उपयोग करके, जो कि बिल्डरों के विभिन्न परिवारों को और अधिक विशिष्ट बना देगा [नोट: मुझे पता है कि यह परिवर्तन नहीं होगा बीसीएल में बने, मैं इस प्रकार की स्थिति के लिए काल्पनिक रूप से बात कर रहा हूं]।
तुम क्या सोचते हो? सी # 4.0 से, यह कंस्ट्रक्टरों के निकट संबंधित समूहों और विधियों को वैकल्पिक मापदंडों के साथ एक एकल विधि बनाने के लिए अधिक समझ में आएगा, या पारंपरिक कई-अधिभार तंत्र के साथ छड़ी करने का एक अच्छा कारण है?