182. EventArgs Empty

לפעמים כשאין לנו באמת EventArgs להעביר לאירוע שאנחנו מקפיצים, אנחנו עושים משהו כזה:

זו הפונקציה שאיתה אנחנו מקפיצים:

1
2
3
4
5
6
7
private void RaiseMyEvent(EventArgs e)
{
if (MyEvent != null)
{
MyEvent(this, e);
}
}

ואנחנו קוראים לה כך:

1
RaiseMyEvent(new EventArgs());

אנחנו לא מעבירים null כי אנחנו מעוניינים שבEvent שאנחנו מקפיצים, יוכלו לגשת לEventArgs בלי חשש.

אלא שזה בזבזני מהבחינות הבאות:

  1. זה מבזבז זכרון, מאחר וכל הקפצה של אירוע יוצרת אובייקט חדש
  2. זה מבזבז זמן, כי לוקח זמן לבנות את האובייקט הנ"ל

מאחר ואין לנו צורך באמת ליצור לכל הקפצת אירוע עם EventArgs ריקים אובייקט משלו, אנחנו יכולים ליצור אחד סטטי ולהשתמש בו תמיד.

למרבה המזל, עשו זאת כבר בשבילנו: קיים הProperty הסטטי EventArgs.Empty, שכשמו הוא – EventArgs ריקים.

לכן במקום להקפיץ את האירוע עם יצירת אובייקט חדש, עדיף לכתוב כך:

1
RaiseMyEvent(EventArgs.Empty);

שבוע מלא אירועים בעלי תוכן טוב

שתף