الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Dispose VS Close ما الفرق بينهم؟

بدأه عمرو عماد في 14 أكتوبر 2012 · 6 رد · 1,486 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

ما الفرق بينهم؟ Dispose VS Close

#2

السلام عليكم ورحمه الله وبركاته

اخي اذا كانت تقصد الدالتين الموجدتين في الكائن Connection, فالاول يقوم باغلاق الاتصال, اما الثاني فيقوم باغلاق الاتصال وازالة المرجع Reference من الذاكرة. فيمكنك فتح الاتصال من جديد لو استخدمت Close وهذا الذي الذي لايمكنك في الدالة Dispose لأن الكائن لم يعد موجودا

1

.:: Wish to become better and better ::.

#3

كنت أقصد

Form1.Close();
Form1.Dispose ();

لها قمت بوضعه في منتدي السي شارب..

معني هدا يا أخي أني لو قمت بإستخدام الدالة Dispose يتوجب علي إعادة تعريف المتغير مرة اخري لكي أقوم بفتح الإتصال مرة أخري

لكن مادا عن Form وباقية الأدوات ؟

#4

السلام عليكم ورحمه الله وبركاته

اخي بالنسبه للفورم فالداله Close تقوم باغلاقه, اما Dispose تقوم بحذف مرجع الكائن من الـ Heap

.:: Wish to become better and better ::.

#5

Heap ??

تقصد بها الرام؟؟ أم صف داحلي في البرنامج؟؟

وايضا مادا سيحدث لو قمت بإستخدام Dispose سوف يعني أني لا استطيع إستخدام Form مرة أخري؟؟

#6

السلامه عليكم ورحمه الله وبركاته

بالفعل فلا يكون اي وجود للكائن في الذاكره ولايمكن استخدامه ..

.:: Wish to become better and better ::.

#7
عمرو عماد كتب:

Heap ??

تقصد بها الرام؟؟ أم صف داحلي في البرنامج؟؟

وايضا مادا سيحدث لو قمت بإستخدام Dispose سوف يعني أني لا استطيع إستخدام Form مرة أخري؟؟

بكلتا الحالتين لن تستطيع استعمال ال form ويجب عليك استعمال dim x as new from2 : x.show

احد الاختلافات بين close and dispose

Create New project with form1 and form2

in form1 add 1 button (btn_runform2)

in form2 add 1 textbox (Textbox1) and 2 button (btn_close) and (btn_dispose)

in form2 عدل خاصية textbox "modifiers" من private الى public

add the following code:

*in form1

 Private Sub btn_runform2_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles btn_runform2.Click
            Dim frm As New Form2
            frm.ShowDialog
            MsgBox(frm.txtTextBox1.Text)
    End Sub

*in form2

Private Sub btn_close_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles btn_close.Click
    Me.Close
End Sub

Private Sub btn_dispose_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles btn_dispose.Click
    Me.Dispose
End Sub

شغل المشروع

اكبس btn_runform2

سيظهر ال form2

اكتب بال textbox "ABC" ثم اضغط close

سيختفي form2

لاحظ ال msgbox

اكبس btn_runform2

سيظهر ال form2

اكتب بال textbox "ABC" ثم اضغط dispose

سيختفي form2

لاحظ ال msgbox

في حالة close ظلت كائنات ال form2 في الذاكرة

في حالة ال dispose زالت نهائيا

ارجو ان تكون الكتابة بالعربي مفهومة :)

مواضيع مشابهة