खोज…


आईडीसोपोलेयर की मूल अवधारणा

किसी भी समय आप एक वर्ग को लागू करने वाली का दृष्टांत IDisposable , आप कॉल करना चाहिए .Dispose उस वर्ग पर 1 जब आप इसका उपयोग समाप्त कर दिया है। यह वर्ग को किसी भी प्रबंधित या अप्रबंधित निर्भरता को साफ करने की अनुमति देता है जिसका उपयोग वह कर सकता है। ऐसा नहीं करने से मेमोरी लीक हो सकती है।

Using कीवर्ड सुनिश्चित है कि .Dispose कहा जाता है, के बिना आप स्पष्ट रूप से यह कॉल करने के लिए हो रही है।

Using किए बिना उदाहरण के लिए:

Dim sr As New StreamReader("C:\foo.txt")
Dim line = sr.ReadLine
sr.Dispose()    

अब Using साथ:

Using sr As New StreamReader("C:\foo.txt")
    Dim line = sr.ReadLine
End Using '.Dispose is called here for you

एक प्रमुख लाभ Using है जब एक अपवाद है, फेंक दिया जाता है, क्योंकि यह सुनिश्चित करता है .Dispose कहा जाता है।

निम्नलिखित को धयान मे रखते हुए। यदि एक अपवाद को फेंक दिया जाता है, तो आपको कॉल करने के लिए याद रखने की आवश्यकता है। डिज़ाइन करें लेकिन आपको यह सुनिश्चित करने के लिए ऑब्जेक्ट की स्थिति की जांच करनी होगी कि आपको एक शून्य संदर्भ त्रुटि नहीं मिलती है, आदि।

    Dim sr As StreamReader = Nothing
    Try
        sr = New StreamReader("C:\foo.txt")
        Dim line = sr.ReadLine
    Catch ex As Exception
        'Handle the Exception
    Finally
        If sr IsNot Nothing Then sr.Dispose()
    End Try

एक ब्लॉक का उपयोग करने का मतलब है कि आपको ऐसा करने के लिए याद रखने की ज़रूरत नहीं है और आप try अंदर अपनी वस्तु की घोषणा कर सकते हैं:

    Try
        Using sr As New StreamReader("C:\foo.txt")
            Dim line = sr.ReadLine
        End Using
    Catch ex As Exception
        'sr is disposed at this point
    End Try

1 क्या मुझे हमेशा मेरे DbContext ऑब्जेक्ट पर Dispose () कॉल करना होगा? नहीं

एक का उपयोग करते हुए अधिक वस्तुओं की घोषणा

कभी-कभी, आपको एक पंक्ति में दो Disposable ऑब्जेक्ट बनाने होंगे। ब्लॉक Using घोंसले से बचने का एक आसान तरीका है।

यह कोड

Using File As New FileStream("MyFile", FileMode.Append)
    Using Writer As New BinaryWriter(File)
        'You code here
        Writer.Writer("Hello")
    End Using
End Using

इस एक में छोटा किया जा सकता है। मुख्य लाभ यह है कि आप एक इंडेंटेशन स्तर प्राप्त करते हैं:

Using File As New FileStream("MyFile", FileMode.Append), Writer As New BinaryWriter(File)
    'You code here
    Writer.Writer("Hello")
End Using


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow