मेरे पास एक विधि है, जिसमें अंदर/कोशिश/समापन ब्लॉक है। कोशिश ब्लॉक के भीतर, मैं SqlDataReader की घोषणा इस प्रकार है:कॉलिंग निपटान() बनाम जब कोई वस्तु गुंजाइश हो जाती है/विधि समाप्त होती है
SqlDataReader aReader = null;
aReader = aCommand.ExecuteReader();
अंत में ब्लॉक में, वस्तुओं जो मैन्युअल का निपटारा कर रहे हैं उन लोगों के जो श्रेणी स्तर पर स्थापित कर रहे हैं कर रहे हैं। तो उपरोक्त SqlDataReader जैसे IDISposable लागू करने वाली विधि में ऑब्जेक्ट्स, क्या वे स्वचालित रूप से निपटान हो जाते हैं? पाठक की सामग्री प्राप्त करने के लिए थोड़ी देर बाद लूप निष्पादित करने के बाद एक रीडर पर बंद() को कॉल किया जाता है (जिसे निपटाना() होना चाहिए क्योंकि कॉल बंद करें())। अगर बंद() को कोई कॉल नहीं है, तो क्या विधि समाप्त हो जाती है या ऑब्जेक्ट गुंजाइश से बाहर हो जाता है, तो क्या यह ऑब्जेक्ट स्वचालित रूप से बंद/डिस्पोजेड हो जाएगा?
संपादित करें: मुझे उपयोग() कथन का पता है लेकिन ऐसे परिदृश्य हैं जो मुझे भ्रमित कर रहे हैं। Dispose()
विधि (जो SqlDataReader के लिए Close()
विधि के लिए रवाना से गुजरता है) जब ब्लॉक समाप्त होता है का उपयोग कर बुलाया जाएगा - धन्यवाद
धन्यवाद