आज एक मानसिक ब्लॉक होने के बाद, मेरे तर्क को सत्यापित करने के लिए एक हाथ की आवश्यकता है, जिसे फ्यूबर नहीं किया गया है।डिस्पोजेबल, ब्लॉकों का उपयोग करके/कोशिश करें/पकड़ें
परंपरागत रूप से मैं फ़ाइल करना होगा मैं/हे इस के समान:
FileStream fs = null; // So it's visible in the finally block
try
{
fs = File.Open("Foo.txt", FileMode.Open);
/// Do Stuff
}
catch(IOException)
{
/// Handle Stuff
}
finally
{
if (fs != null)
fs.Close();
}
बहरहाल, यह बहुत ही सुंदर नहीं है।
आदर्श रूप से मैं using
ब्लॉक का उपयोग करने के लिए फ़ाइलस्ट्रीम का निपटान करने के लिए ब्लॉक करना चाहता हूं, हालांकि मैं उपयोग और कोशिश/पकड़ के बीच तालमेल के बारे में अनिश्चित हूं।
try
{
using(FileStream fs = File.Open("Foo.txt", FileMode.Open))
{
/// Do Stuff
}
}
catch(Exception)
{
/// Handle Stuff
}
हालांकि, मुझे चिंता है कि ब्लॉक का उपयोग के भीतर से समय से पहले बाहर निकलने के (फेंका अपवाद के माध्यम से) के लिए ब्लॉक का उपयोग की अनुमति न दे रहा हूँ:
यह मैं कैसे ऊपर लागू करना चाहते हैं है पूर्ण निष्पादन और इसकी वस्तु को साफ करें। क्या मैं सिर्फ पागल हूं, या क्या यह वास्तव में जिस तरह से मेरा इरादा रखता है वह काम करेगा?