בהמשך לטיפ היומי של אתמול,
מיקרוסופט גילו שהסוג השני הנפוץ של delegateים שיש לנו הם delegateים שלא מחזירים כלום, ומקבלים עד 4 פרמטרים.
לכן המציאו את Action (נמצאים בSystem.Core.dll בnamespace ששמו system, פרט לAction
|
|
לדוגמה מהדוגמאות שראינו ביום חמישי:
|
|
במקום נוכל להשתמש בAction:
|
|
גם זה חוסך לנו הרבה delegateים מיותרים ומגעילים.
באופן כללי בבואכם לכתוב delegateים משלכם חשבו על הנקודות הבאות:
- האם קיים delegate כזה כבר (לרבות Func וAction)
- אם לא, אולי אני עושה משהו לא בסדר (אולי אני מקבל יותר מדי פרמטרים, אולי זה לא נכון שאני מקבל פרמטרים מסוג params/ref/out)
- במידה ועברתם את שלב 2, חשבו אם אפשר להשתמש בGenerics כדי לאפשר Reuse לdelegate שלכם ולא להשתמש בו באופן חד פעמי
- זכרו שקיימים covariance וcontravariance ברמת השפה בין delegateים וmethod groups, כך שdelegate פחות/יותר ספציפי יכול לשמש יותר method groups ממה שנראה לעין.
המשך יום טוב