मुझे एफसीएल कोड में असामान्य नमूना मिला।बाइनरी रीडर। डिस्प्ले (बूल डिस्प्लेिंग) स्ट्रीम के लिए स्थानीय संदर्भ बनाता है। क्यूं कर?
यह System.IO.BinaryReader में विधि है:
protected virtual void Dispose(bool disposing) {
if (disposing) {
Stream copyOfStream = m_stream;
m_stream = null;
if (copyOfStream != null && !m_leaveOpen)
copyOfStream.Close();
}
m_stream = null;
m_buffer = null;
m_decoder = null;
m_charBytes = null;
m_singleChar = null;
m_charBuffer = null;
}
निष्पादन तर्क पर क्या प्रभाव 'copyOfStream' है?
धन्यवाद! मैंने यह भी मान लिया कि विकल्प, लेकिन Stream.Close() पर किस प्रकार का अपवाद उठाया जा सकता है? मुझे कुछ नहीं मिला। – Illivion
मुझे यकीन नहीं है कि यह एक तर्क है। आम तौर पर हम ब्लॉक का उपयोग करने में निपटान कर रहे हैं, और इसका मतलब है कि वेरिएबल कभी भी उपयोग नहीं किया जाएगा। लेकिन इस मामले में अगर हम अपवाद-सुरक्षा के बारे में बात कर रहे हैं, तो कोई व्यक्ति विधि का निपटान करने के लिए कॉल पुनः प्रयास कर सकता है और NullReferenceException का सामना करेगा। –
हो सकता है कि एक और धागा किसी भी तरह हमारी अशक्त जांच और उदाहरण विधि 'बंद()' के लिए हमारी कॉल के बीच '' null' को m_stream' सेट कर सकते हैं? –