שיעור 10: Events ו־Observer
בלי אירועים, מחלקה שרוצה לעדכן אחרים חייבת להכיר כל אחד מהם — וכל נמען חדש דורש לפתוח אותה ולערוך אותה שוב. בשיעור הזה נלמד איך event ו־+= הופכים את הכיוון: המעוניינים נרשמים בעצמם, והמחלקה המפרסמת לא מכירה אף אחד מהם.
אירוע הוא כמו רשימת תפוצה של עיתון: העיתון לא מכיר אף מנוי אישית, וכל מי שנרשם מקבל את הגיליון ברגע שהוא יוצא.
- אירוע (event) ותבנית Observer
- מנגנון שבו מחלקה מפרסמת מרימה אירוע, ומנויים שנרשמו אליו ב־+= מקבלים עדכון — בלי שהמפרסמת מכירה אותם.
- הרשמה לאירוע (+=)
- += מוסיף מטפל לרשימת המנויים של האירוע, ו־-= מסיר אותו. השמה ישירה עם = אסורה מחוץ למחלקה המפרסמת.
- EventHandler (דלגייט)
- טיפוס הדלגייט שקובע את החתימה של כל מנוי לאירוע — למשל EventHandler<string> מקבל שולח ומחרוזת.