मुझे पता है कि यह मूर्खतापूर्ण प्रतीत हो सकता है, लेकिन अगर मैं फ़ाइल बंद करता हूं तो निम्न कोड केवल तभी काम करता है? अगर मैं फ़ाइल बंद नहीं करता हूं, तो पूरी स्ट्रीम लिखी नहीं जाती है।मुझे सी # में एक फ़ाइल क्यों बंद करनी चाहिए?
कदम:
- भागो प्रपत्र लोड पर इस कोड।
- माउस प्रदर्शित करने के बाद माउस का उपयोग बंद करें।
- कार्यक्रम समाप्त हो जाता है।
क्या फ़ाइल ऑब्जेक्ट को स्कोप से बाहर होने पर स्वचालित रूप से फ़्लश या बंद नहीं किया जाना चाहिए? मैं सी # के लिए नया हूं, लेकिन मैं सी ++ विनाशकों में बंद() को कॉल जोड़ने के लिए उपयोग किया जाता हूं।
// Notes: complete output is about 87KB. Without Close(), it's missing about 2KB at the end.
// Convert to png and then convert that into a base64 encoded string.
string b64img = ImageToBase64(img, ImageFormat.Png);
// Save the base64 image to a text file for more testing and external validation.
StreamWriter outfile = new StreamWriter("../../file.txt");
outfile.Write(b64img);
// If we don't close the file, windows will not write it all to disk. No idea why
// that would be.
outfile.Close();
आप http://blogs.msdn.com/b/oldnewthing/archive/ पर चर्चा मिल सकता है 2010/08/10/10048150.aspx सी # और सी ++ के बीच अंतर के लिए स्पष्टीकरण और औचित्य प्रदान करने में सहायक होने के लिए सहायक हो। आम तौर पर, मैं सी ++ विनाशकों की तुलना सी # 'आईडीस्पोजेबल 'और' {{'' का उपयोग करके करूंगा। और निश्चित रूप से, 'उपयोग' को 'बंद करें' या 'निपटान' को स्पष्ट रूप से कॉल करने से सुरक्षित है, क्योंकि यह ऑब्जेक्ट का निपटारा सुनिश्चित करने के लिए 'प्रयास-अंत में' ब्लॉक में कॉल को लपेटता है। – Brian
धन्यवाद, सभी, स्पष्ट और त्वरित सहायता के लिए। – Harvey