
IDisposable, הפקודה using, ירושה עם Dispose ותבנית ה-Dispose Design Pattern.IDisposable כך ש-Dispose מודיעה שהחיבור נסגר. ב-Main צרו אובייקט בלי using, שלחו וקראו ל-Dispose בעצמכם.Send ובדקו אם Dispose רצה.using ובדקו שגם עם חריגה ב-Send ה-Dispose רצה.EmailSender, עם מתודה שמקבלת List של מחרוזות, נושא וגוף ושולחת לכל הכתובות בעזרת פונקציית הבסיס. דרסו את Dispose עם הודעה אחרת על שחרור משאבים נוספים. בדקו ששתי הודעות ה-Dispose מוצגות, זו של הבסיס וזו של הנגזרת.StreamReader ו-StreamWriter פרטיים. הקונסטרקטור מקבל שמות קובץ מקור ויעד ויוצר אותם. Encrypt קוראת שורה אחר שורה, מזיזה כל תו בקבוע ושומרת לקובץ השני. כתבו את המחלקה לפי ה-Dispose Design Pattern ובדקו ב-Main עם using.הטקסט המלא של הדקות הראשונות בהרצאה «תרגילים על Managing Resources» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
רגילים בנושא Managing Resources. צאו מחלקה בשם E-Mail Sender. בקונסטרקטור שלה הציגו איזושהי הודעה שמציינת שקישור לאינטרנט כרגע נפתח בכדי לשלוח אימייל.
הוסיפו פונקציה ששולחת אימייל, מדמה שליחת אימייל, היא מקבלת כמה ארגומנטים E-Mail Address, Subject ו-Body ופשוט מציגה אותם על המסך. ממשו את iDisposable ובפונקציית dispose בצעו כתיבה של הודעה שמציינת שה-Connection לאינטרנט נסגר.
בתוך ה-Main צרו אובייקט E-MailSender בלי שימוש בפקודת Using, קראו לפונקציה של שליחת המייל ולאחר מכן קראו בעצמכם לפונקציית Dispose.
המשיכו מהתרגיל הקודם ובצעו גרימה של איזושהי חריגה בתוך הפונקציה Send ותבדקו האם Dispose אכן מתבצעת כרגע. המשיכו מהתרגיל הקודם וצרו אובייקט מה-E-Mail Sender אבל על ידי שימוש בפקודת Using, ובדקו האם Dispose אכן מתבצעת גם אם הייתה חריגה בתוך פונקציית send.
המשיכו מהתרגיל הקודם וצרו מחלקה נוספת שנקראת Bulk E-Mail Sender. המחלקה הזאת צריכה לרשת מ-E-Mail Sender. Bulk זה כמויות.
אתם רוצים שהמחלקה הזאת תאפשר לשלוח כמויות של אימיילים. תוסיפו מתודה למחלקה bulkEmailSender שמקבלת list של סטרינג שמתארת אימיילים, subject ו-body ופשוט שולחת לכל האימיילים האלה את האימייל.
פשוט מדפיסה על המסך את השליחה של כל האימיילים. היא יכולה כמובן להשתמש במחלקה של מחלקת הבסיס, ליתר דיוק בפונקציה של מחלקת הבסיס send ששולחת אימייל אחד.
בצעו דריסה של dispose וב-dispose של bulkEmailSender