में बेस कन्स्ट्रक्टर के पास ऑब्जेक्ट संदर्भ पास करने के लिए मुझे चेतावनी मिलती है जब मैं विजुअल स्टूडियो के कोड विश्लेषण उपयोगिता के माध्यम से कुछ कोड चलाता हूं जो मुझे नहीं पता कि कैसे हल किया जाए। शायद यहां कोई भी इसी तरह के मुद्दे पर आया है, इसे हल किया है, और अपनी अंतर्दृष्टि साझा करने के लिए तैयार है।CA2000 सी #
मैं डेटाग्रिड व्यू नियंत्रण में उपयोग किए जाने वाले कस्टम-पेंट सेल का प्रोग्रामिंग कर रहा हूं। कोड जैसा दिखता है:
CA2000:
public class DataGridViewMyCustomColumn : DataGridViewColumn
{
public DataGridViewMyCustomColumn() : base(new DataGridViewMyCustomCell())
{
}
यह निम्न चेतावनी उत्पन्न Microsoft.Reliability: विधि में 'DataGridViewMyCustomColumn.DataGridViewMyCustomColumn()' वस्तु 'पर नया DataGridViewMyCustomCell System.IDisposable.Dispose फोन() 'इससे पहले कि सभी संदर्भ दायरे से बाहर हैं।
मैं समझता हूँ कि यह मेरे चेतावनी है DataGridViewMyCustomCell (या एक वर्ग है कि यह से विरासत) IDisposable इंटरफ़ेस और निपटान() विधि जब यह नहीं रह गया है DataGridViewMyCustomCell ने दावा किया है किसी भी संसाधनों को साफ करने के बुलाया जाना चाहिए लागू करता है।
इंटरनेट पर मैंने जो उदाहरण देखे हैं, वे ऑब्जेक्ट के जीवनकाल को गुंजाइश करने के लिए ब्लॉक का उपयोग करते हैं और सिस्टम को स्वचालित रूप से इसका निपटान करते हैं, लेकिन जब कन्स्ट्रक्टर के शरीर में स्थानांतरित हो जाता है तो आधार पहचाना नहीं जाता है, इसलिए मैं ' टी इसके चारों ओर एक ब्लॉक ब्लॉक लिखो ... जो मुझे यकीन नहीं है कि मैं वैसे भी करना चाहता हूं, क्योंकि वह ऑब्जेक्ट को मुक्त करने के लिए रन टाइम को निर्देश नहीं देगा जो बाद में बेस क्लास के अंदर उपयोग किया जा सकता है?
मेरा प्रश्न तब है, क्या कोड ठीक है? या, चेतावनी को हल करने के लिए इसे कैसे बदला जा सकता है? मैं चेतावनी को दबाना नहीं चाहता हूं जब तक कि ऐसा करने के लिए वास्तव में उचित नहीं है।
+1 'पूरी तरह से वीएस 10 में टूटा' के लिए +1। लोगों को मुझे कोड-गुणवत्ता-सुधार की सवारी पर शामिल होने के लिए राजी करना बहुत मुश्किल है जब उपकरण मुझे इतना बेवकूफ लगते हैं ... –