בהמשך לטיפ היומי של אתמול ובאופן שלא כל כך מתקשר לשאר הטיפים של השבוע,
לפעמים אנחנו מעוניינים לאפשר למשתמש להעביר מספר פרמטרים כאוות נפשו לפונקציה.
קיימת תמיכה לזה בשפת C#, באמצעות הKeyword params, אותו ניתן להצמיד לפרמטר האחרון בפונקציה, בתנאי שהוא מסוג מערך.
לדוגמה, נניח שאנחנו מעוניינים לכתוב פונקציה שמחשבת סכום של מספר מספרים שלמים.
נוכל לעשות משהו כזה:
|
|
ולקרוא לה כך:
|
|
שימו לב שאנחנו יכולים לציין כמה פרמטרים שאנחנו רוצים.
קיימת אפשרות גם להעביר פשוט מערך, אם מישהו מעדיף את הקוד הזה, או לחלופין יש לו מערך שהוא רוצה להעביר:
|
|
מגבלות: לא נוכל לשלוח פרמטרים בparams בתור ref או out.
בנוסף, הפרמטר של הparams חייב להיות האחרון בפרמטרים. (אתם מסוגלים לחשוב מדוע?)
מבחינת overloading, יש לפונקציה עם params עדיפות נמוכה יותר בזמן קימפול ממתודה עם אותו שם ומספר הפרמטרים שציינו:
כלומר אם נניח נוסיף את הפונקציה הזאת
|
|
אזי הקריאה הבאה:
|
|
מחזירה 0.
params יכול להפוך API למאוד נוח, במיוחד כoverload לפונקציות שמצפות לקבל מערך או IEnumerable<T> כלשהו.
סופ"ש באורך לא מוגבל