2009-11-18 6 views
14

आयरनपीथन में इसके बराबर क्या है? क्या यह सिर्फ एक कोशिश अंततः ब्लॉक है?आयरनपीथन में सी # "उपयोग" ब्लॉक के बराबर क्या है?

using (var something = new ClassThatImplementsIDisposable()) 
{ 
    // stuff happens here 
} 
+0

के इस सूत्र के लिए कुछ अधिकार जोड़ें: http://lists.ironpython.com/ उदाहरण के लिए पाइपर्मेल/उपयोगकर्ता-ironpython.com/2008-जुलाई/007826.html –

+1

मुझे इस प्रश्न के लिए प्रासंगिक में कुछ भी दिखाई नहीं देता है। –

उत्तर

25

IronPython with बयान के साथ IDisposable का उपयोग कर का समर्थन करता है, तो आप कुछ इस तरह लिख सकते हैं::

with ClassThatImplementsIDisposable() as something: 
    pass 
+0

अपने खुद के प्रकार के लिए अच्छा विकल्प है, लेकिन ढांचे के प्रकार के लिए काम नहीं करता है। –

+0

कोई विशेष कारण यह फ्रेमवर्क प्रकारों के साथ काम नहीं करता है? –

+1

क्या आप निश्चित हैं? मैंने अभी 'स्ट्रीमवाइटर' के साथ प्रयास किया है और ऐसा लगता है कि यह अपेक्षित काम करता है। –

6

IronPython (2.6 रिलीज उम्मीदवारों के रूप में) with बयान है, जो उपयोग करने के समान तरीके से एक IDisposable वस्तु लपेटता का समर्थन करता है।

try { 
    (do something unmanaged here) 
} 
finally { 
    unmanagedObject.Dispose(); 
} 

आशा इसकी सहायता से आप कथन का उपयोग के पीछे तर्क समझ में:

+0

बस उत्सुक - डाउनवॉट क्यों? जहां तक ​​मुझे पता है, यह एक भाषा के रूप में सत्य-अजगर है, इसमें भाषा में शामिल नहीं है। –

+2

-1 पायथन इसमें शामिल है, यह 'साथ' कथन है। – Javier

+0

@ जेवियर बडी: इसका उपयोग करने के बाद फिर से कहें। – Teddy

0

ब्लॉक का उपयोग हुड के नीचे निम्नलिखित वास्तव में है।

2

with बयान नहीं है: http://www.ironpythoninaction.com/magic-methods.html#context-managers-and-the-with-statement

with open(filename) as handle: 
    data = handle.read() 
    ... 
+0

नहीं। "साथ" कथन केवल लॉक करने योग्य ऑब्जेक्ट्स के साथ काम करता है, किस श्रेणी फ़ाइल ऑब्जेक्ट्स से संबंधित होता है। यह * अनियंत्रित प्रकार, कहते हैं, पूर्णांक के साथ काम नहीं करता है। – Teddy

4

With statement

with open("/temp/abc") as f: 
    lines = f.readlines() 
+0

यह बॉक्स के बाहर IDISposable का समर्थन नहीं करता है। यह एक __exit__ रूटीन निर्दिष्ट के साथ अजगर प्रकार के साथ काम करता है। –

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