2010-03-08 11 views
9

मैं अवधारणा और कथन का उपयोग का उपयोग कर के पीछे के कारणों को समझते हैं, और मैं फ़ाइल संसाधनों और दूरस्थ कनेक्शन तरह बातें, मैं सोच रहा था अगर यह लिए अच्छा अभ्यास है WinForm रूपों और संवादों के साथ कथन का उपयोग का उपयोग के साथ उपयोग करें?WinForms के साथ उपयोग कथन का उपयोग ... अच्छा अभ्यास?

using (MyDialog dlg = new MyDialog()) 
{ 
    if (dlg.ShowDialog() == EDialogResult.OK) 
    { 
     // Do Something 
    } 
} 

धन्यवाद!

+0

अच्छा बिंदु। कोशिश/पकड़/अंत में ब्लॉक में सब कुछ लपेटने की सुनवाई क्या है? –

उत्तर

7
केवल संवादों के साथ

। लेकिन फिर यह एक बहुत अच्छा अभ्यास है।

आप पाएंगे कि यह शो() के आसपास काम नहीं करता है, क्योंकि using(){} केवल 1 विधि के अंदर उपयोग किया जा सकता है और आप शो() के बाद फिर से बंद नहीं करना चाहते हैं।

+0

बेशक यह केवल संवाद के साथ उपयोग करने के संबंध में समझ में आता है। :) –

+0

मैं न समझ में क्यों तुम ShowDialog के साथ एक निपटान आवश्यकता होगी, जबकि शो के साथ आप न .. हर बार मेरे कोड में कुछ असंगति पैदा करता है। मैं आमतौर पर शोडियलॉग के आसपास एक उपयोग भी जोड़ता हूं, लेकिन केवल मेरे प्रोफाइलर को इसे डिस्पोजेबल इंस्टेंस के रूप में सूचीबद्ध नहीं करता है जिसे डिस्पोजेड नहीं किया गया है। क्या इसका वास्तविक कारण है कि इसका निपटारा क्यों किया जाना चाहिए? – stmax

+2

@stmax यह दिखाए जा रहे फॉर्म के दायरे पर निर्भर करता है। जब तक फॉर्म बंद नहीं हो जाता है तब तक ShowDialog 'ब्लॉक' होगा, इसलिए फॉर्म बंद होने के बाद तक उपयोग ब्लॉक समाप्त नहीं होगा। दूसरी ओर दिखाएं 'तत्काल' रिटर्न 'ताकि आप किसी ऑब्जेक्ट का निपटान कर सकें जो अभी भी उपयोग में है। –

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