מדי פעם אנחנו נתקלים בinterface ששמו IDisposable.
מדובר בממשק שנראה ככה:
|
|
ויש לו מתודה אחת שקוראים לה Dispose.
המתודה אחראית לנקות את כל המשאבים של האובייקט.
באופן כללי, הממשק הומצא כדי לנקות משאבים שהם unmanaged (למשל גישה לקבצים, פקדים וכו’) –
הGarbage Collector מנקה באופן אוטומטי אובייקטים שהם managed ברגע שהם לא נמצאים יותר בשימוש, אבל אי אפשר לדעת מתי הוא יפעל. פרט לזאת, הGarbage Collector לא מכיר משאבים שהם unmanaged.
המטרה של הממשק היא לנקות את המשאבים הunmanaged באופן ייזום. מחזיק של אובייקט יכול לקרוא לDispose כאשר אין לו צורך באובייקט יותר.
מימוש:
מומלץ לממש במידה והאובייקט שלנו משתמש בעצמו במשאבים שהם unmanaged, (קבצים, פקדים, Threadים וכו’), גם אם הוא משתמש בעטיפות שלהם.
בנוסף, מומלץ לממש אם ברצונכם לאפשר לקרוא באופן ייזום לניקיון של האובייקט.
שימוש:
מומלץ להשתמש בממשק באמצעות בלוק של try וfinally, למשל:
|
|
יום גשום טוב