2010-06-25 11 views

उत्तर

9

यह विरासत के माध्यम से निपटान विधि है, लेकिन यह एक है स्पष्ट कार्यान्वयन। यह कॉल करने के लिए, आप

((IDisposable)myObject).Dispose(); 

उपयोग करने के लिए या फिर, ज़ाहिर है, बस, एक using ब्लॉक में लपेट के रूप में यह आप के लिए स्पष्ट कॉल करता होगा।

+2

+1 को स्पष्ट रूप से कार्यान्वित करने का उल्लेख करने के लिए देखें। जैसा कि दूसरों ने आधार पर कहा है, लेकिन आप इसे अभी भी देखेंगे - आपने उत्तर दिया कि आप इसे आसानी से क्यों नहीं देख सकते हैं। –

+2

स्पष्ट कार्यान्वयन का उपयोग करने के पीछे क्या तर्क है? – MCS

+0

@MCS, यह एक अच्छा सवाल है! दरअसल, यह स्टैक ओवरफ्लो के लिए एक अच्छा * नया * प्रश्न जैसा लगता है कि क्यों कुछ वर्गों में स्पष्ट पहचान योग्य कार्यान्वयन होते हैं, क्योंकि यह इस तथ्य को मुखौटा करता है कि ऑब्जेक्ट को उस औसत डेवलपर के लिए निपटाया जाना चाहिए जो हर बार प्रलेखन से परामर्श नहीं कर रहा है एक वर्ग का उपयोग करता है। –

10

इसके आधार वर्ग WebResponse में लागू, देख http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx

+0

मैं किसी भी निपटान विधि वहाँ या तो नहीं दिख रहा। – MCS

+2

"स्पष्ट इंटरफेस कार्यान्वयन" पर नीचे स्क्रॉल करें – blu

+0

ओह, यह वहां है, "स्पष्ट इंटरफेस कार्यान्वयन" के तहत पृष्ठ को और नीचे। ऐसा क्यों है? और जब यह FtpWebResponse का उदाहरण है, तो यह विधि IntelliSense में क्यों नहीं दिखाई देती है? – MCS

4

जब आप interface स्पष्ट रूप से कार्यान्वित करते हैं, तो आपको लिस्टिंग में विधि नहीं मिल जाएगी। उस विधि तक पहुंच प्राप्त करने के लिए आपको उस ऑब्जेक्ट को interface लागू करने के लिए डालना होगा।

public class MyClass : IDisposable 
{ 
    void IDisposable.Dispose() 
    { 
     throw new NotImplementedException(); 
    } 
} 

संदर्भ: http://msdn.microsoft.com/en-us/library/ms173157.aspx

संबंधित मुद्दे

 संबंधित मुद्दे