2011-03-02 5 views
5

मेरे पास एक स्थिर वर्ग है जिसमें विभिन्न प्रकार के विस्तार विधियों का समूह है। क्या प्रत्येक उपयोग प्रकार के लिए अलग-अलग वर्ग - अलग-अलग वर्ग में इसे विभाजित करने का कोई उपयोगिता या तरीका है।एक्सटेंशन विधियों को कैसे समूहित करें?

+0

नमस्ते, मैं आपके द्वारा विस्तारित हर प्रकार के लिए टाइप एक्सटेंशन जैसे किसी भी वर्ग को परिभाषित करता हूं, मैं इन सभी वर्गों को एक ही फ़ाइल और नेमस्पेस में रखता हूं यदि वे बहुत अधिक नहीं हैं। –

उत्तर

5

विभिन्न वर्गों में अपनी विभिन्न विस्तार विधियों को रखना "स्वच्छ कोड" परिप्रेक्ष्य से एक अच्छा विचार है, लेकिन एक्सटेंशन विधियों का मुख्य "समूहकरण" उन्हें विभिन्न नामस्थानों में रखकर होता है। इसका कारण यह है कि विस्तार विधियों को उपयुक्त नामस्थान "उपयोग" द्वारा उपलब्ध कराया जाता है।

विभिन्न नामस्थानों में विस्तार विधियों के विभिन्न समूहों को रखना एक अच्छा विचार है क्योंकि आप एक्सटेंशन विधियों को टकरा सकते हैं। यदि ऐसा होता है, और विस्तार विधियों का प्रत्येक तार्किक समूह एक अच्छी तरह से नामित नेमस्पेस में है, तो आप using कथनों में से किसी एक को हटाकर संघर्ष को हल करने में सक्षम होना चाहिए, जिससे using कथन छोड़ दिया जा सकता है जिसमें आप वास्तव में इच्छित एक्सटेंशन विधि शामिल कर सकते हैं।

कुछ सबसे अच्छे तरीके के लिए एक लिंक है:

public class StringComplexManager 
{ 
    public StringComplexManager(String value) 
    { 
     Value = value; 
    } 

    public String Value { get; set; } 
} 

public static class StringComplexExtensions 
{ 
    public static StringComplexManager ComplexOperations(this String value) 
    { 
     return new StringComplexManager(value); 
    } 

    public static int GetDoubleLength(this StringComplexManager stringComplexManager) 
    { 
     return stringComplexManager.Value.Length * 2; 
    } 
} 

प्रयोग है:

string a = "Hello" 
a.ComplexOperations().GetDoubleLength() 

ComplexOperation() समूहों विस्तार तरीकों

http://blogs.msdn.com/b/vbteam/archive/2007/03/10/extension-methods-best-practices-extension-methods-part-6.aspx

+0

उत्तर के लिए धन्यवाद। – Peter17

+0

+1 अच्छा लिंक, धन्यवाद! –

0

मैं समूह का एक और तरीका है और इंटेलिजेंस को संकुचित करता है दायरा ताकि अगर आपके पास मूल रूप से सैकड़ों स्ट्रिंग एक्सटेंशन विधियां हों तो अब आप केवल इंटेलिजेंस में देखेंगे।