בהמשך לטיפ היומי של אתמול,
מיקרוסופט גילו שהסוג השני הנפוץ של 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 ממה שנראה לעין.
 
המשך יום טוב