סיון

C# 4.0, Visual Studio 2010

עוד לא התאוששנו מ-.net 3.5 ו-VS2008, וכבר נוחתת עלינו הבטא של VS 2010 עם פריימוורק 4.0.
אני כמובן לא חולמת עדיין להתקין דברים בבטא, אבל מאד מסקרן אותי לדעת מה יש שם ואיך זה נראה. אז בשביל אנשים כמוני, יש את כל המטורפים שמתקינים עניינים בלי הכרה, ואז רצים לספר לחבר’ה…
אחד כזה קראתי בשבוע שעבר, והוא מספר על פרמטרים אופציונליים ובעלי שמות (איך הייתם מתרגמים named parmeters?) ב-C# 4.0.
הרעיון הוא, שיש מתודות שבהן הגיוני שלאחד הפרמטרים יהיה ערך דיפולטי. כלומר, שמי שקורא למתודה הזאת לא חייב להעביר את הפרמטר הזה, כי יש ערך ברירת מחדל שמתאים ל-90% מהמקרים. לדוגמה, אם יש לנו מתודה שהוכפת string ל-int, אז כשאנחנו קוראים לה, אנחנו מעבירים את משתנה המחרוזת, וגם משתנה Int האומר מה המתודה תחזיר במקרה שההמרה לא הצליחה. נניח שב-90% מהמקרים נרצה לקבל 0, אבל יש מקרים שנרצה לקבל מספר אחר. ב-.net 3.5 חייבים להעביר את ה-0 תמיד. ב-.net4.0, אפשר לקרוא למתודה רק עם המשתנה של המחרוזת, והמתודה פשוט תשתמש בערך הדיפולטי שלה ה-int.
מתודה כזאת תיכתב כך:

int convertToInt(string str, int ret=0)

ואפשר לקרוא לה כך:

convertToInt (“5”)

והערך 0 יינתן בעצמו.
לפעמים יכולים להיות מספר משתנים בעלי שמות. את כולם צריך לשים בסוף רשימת הפרמטרים של המתודה. ומה אם בקריאה למתודה רוצים לתת ערך רק לחלק מהם? למשל, נניח שהמתודה convertToInt היתה מקבלת גם ערך בוליאני המקבל ערך ברירת מחדל:

int convertToInt(string str, int ret=0, bool success=false)

ונניח שאני רוצה להשתמש בערך ברירת המחדל של ה-int, אבל לא של ה-bool. אהה! בשביל זה נתנו להם שמות, כדי שאוכל ציין ספציפית את המשתנה שלו אני נותנת ערך! כל משתנה שאני מציינת בפירוש יקבל את הערך שהעברתי, ומשתנה שלא צויין בפירוש יקבל את ערך ברירת המחדל שהוגדר לו ביצירת המתודה (כמובן שאפשר לא לציין רק משתנים בעלי-שם).

converToInt(“5”, success=true)

אה? לא מגניב?!
[דבר דומה קיים גם ב-php (אנחנו בעיצומו של קורס php שמעבירה לנו חנית כהן), אלא ששם בקריאה למתודה, מעבירים את הפרמטרים בתור מחרוזת, וההפרדה בין הפרמטרים נעשית באמצעות &. החסרון לדעתי בהעברה בתוך מחרוזת היא שאין סיוע של קומפיילר (מה שכמובן לא משנה ב-php מכיון ששם ממילא אין קומפליציה, אבל משמעותי מאד בדוטנט), ולכן טוב עשו ב-#Cשהשימוש בפרמטרים אינו כלוא במחרוזת.]
הפוסט הנ”ל הוא מאד קצר, ומכיל גם צילום מסך של האופן בו ה-intellisense של VS2010 תומך ב-named parameters, אז ממש לא קשה ללכת לקרוא אותו וכמובן כתוב בו קצת יותר ממה שאני סיכמתי כאן…

במאמר הבא, מדובר על עוד פיצ’רים ב-VS2010: על ה-UI המשודרג, על דיבוג ו-TDD; על שפות דוטנט; וגם על כמה באגים וחסרים (אין MVC). יש שם גם קישור לצילומי מסך של VS2010, מה שאותי תמיד מעניין. גם המאמר הזה הוא די קצר, אז אתם בהחלט מוזמנים לקרוא אותו בעצמכם 🙂

2 תגובות על “C# 4.0, Visual Studio 2010

כתבו תגובה לשלמה Cancel reply

כתובת הדוא"ל שלכם לא תוצג.