2012-09-26 12 views
21

कैसे एक से अधिक ऑब्जेक्ट की देखभाल करने के लिए एक का उपयोग करते हुए बयान में निपटाए हो रही?आप एक का उपयोग ब्लॉक के भीतर एक से अधिक ऑब्जेक्ट के निपटान कर सकते हैं?

नमूना कोड

using(MyClass obj = new MyClass()) 
{ 
    MyOtherClass objOC= new MyOtherClass() 
    TextReader objTR = new StringReader(...); 
    // other code 
} 

MyClass obj का उपयोग करते हुए ब्लॉक के अंत में निपटारा किया जाएगा, लेकिन तब के बारे में क्या MyOtherClass objOC और TextReader objTR। जहाँ तक मुझे पता है के रूप में वे अभ्यस्त निपटाए मिलता है, तो मैं वहाँ ब्लॉक का उपयोग करना, यह नीचे की तरह एक नेस्ट होने की जानी चाहिए? मैं अगर वस्तुओं की संख्या में वृद्धि

यह सही नीचे है एक असली चौड़ी स्क्रीन पर नजर रखने की आवश्यकता होगी?

using(MyClass obj = new MyClass()) 
{ 
    using (MyOtherClass objOC= new MyOtherClass()) 
    { 
     using (TextReader objTR = new StringReader(...)) 
     { 
      //code using all three objects 
     } 
    } 
    // other code using just `MyClass obj` 
} 

MyClass & MyOtherClass दोनों को लागू IDisposable

+1

संबंधित: [नेस्टेड सी # में बयान का उपयोग कर] (http://stackoverflow.com/questions/1329739/nested-using-statements-in-c-sharp) –

उत्तर

51

हाँ, आपका कोड सही है। यहां कुछ अन्य चीजें हैं जिन्हें आप जानना चाहते हैं ...

आप एक ही प्रकार के एकाधिक ऑब्जेक्ट्स को एक ही कथन में घोषित कर सकते हैं। documentation से:

using (Font font3 = new Font("Arial", 10.0f), 
      font4 = new Font("Arial", 10.0f)) 
{ 
    // Use font3 and font4. 
} 

उपयोग करने के लिए विभिन्न प्रकार के एक से अधिक ऑब्जेक्ट आप कर सकते हैं स्थान बचाने के लिए एक-पंक्ति सिंटैक्स का उपयोग घोंसला:

using (MyClass obj = new MyClass()) 
using (MyOtherClass objOC= new MyOtherClass()) 
using (TextReader objTR = new StringReader(...)) 
{ 
    // code using all three objects 
} 
2

हाँ, आप दूसरा उदाहरण की तरह using बयान के अंदर उन्हें संलग्न करने के लिए है, तो आप उन सभी पर Dispose(..) कॉल गारंटी करने के लिए चाहते हैं।

या आप एक using बयान के अंदर एक से अधिक ऑब्जेक्ट घोषणा कर सकते हैं। यह कोडिंग शैली और कोड प्रवाह की बात है।

संबंधित मुद्दे

 संबंधित मुद्दे