דף הבית  >> 
 >> 

הרשם  |  התחבר


מה חדש ב- C# 6? 

מאת    [ 25/10/2015 ]

מילים במאמר: 671   [ נצפה 3334 פעמים ]

שלום לכולם,שמי אלירן פאר וזהו הפוסט הראשון בבלוג החדש שלנו – סשן עוגיות.

לאחרונה מייקרוסופט שחררו את Visual Studio 2015, ויחד איתו גם את C# 6.

הפוסט היום יעסוק בפיצ’רים החדשים שנעשו בשפה:

 

1. Conditional Access Operator

החידוש הראשון נקרא Conditional Access Operator (או “אופרטור גישה מותנת”), הסימון שלו הוא ?. ובסיטואציות מסויימות הוא עלול להקל המון על החיים שלכם.

 

יהפוך ל:

 

האופרטור יחזיר null אם אחד מהאובייקטים בשרשרת הוא null, מה שיכול להיות מאוד שימושי בשרשראות ארוכות.

2. Auto Property Initializer

זוכרים Auto Properties? אותם Properties שמגדירים עם get ו- set אוטומטיים, מבלי לממש את הגוף שלהם?אז עכשיו גם אפשר לתת להם ערך.

בC# 6 ניתן לעשות השמה לProperty, מה שבסך הכל חוסך להגדיר אותו ב- Constructor.

פעם:

בC# 6:

מצריך קצת זמן הסתגלות, אבל בסך הכל יכול לחסוך Constructor מיותר או שניים.

3. שיטה שונה לכתוב Constructor (הוסר)

האמת היא שהחידוש הבא היה אמור להכנס ל- C# 6, אבל נכון לעכשיו הוא הוסר מרשימת הפיצ’רים.אישית, לא התחברתי אליו, קשה לי לראות את עצמי מתרגל לכתוב ככה קוד.

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

פעם:

בC# 6:

 

אני יודע, אני יודע… מחלקה שמקבלת פרמטרים… זה בהחלט מוזר.אבל היי, מי אנחנו שנתווכח עם המעצבים של מייקרוסופט?

4. חידוש מסעיר ב- Out Parameter (הוסר)

גם החידוש הבא הוסר מ- C# 6 לאחרונה, מה שדי מוזר כי לדעתי הוא היה לא רע.

כנראה שרוב מי שכותב בC# יותר מיום יומיים נתקל במטודה TryParse – ולמי שבכל זאת לא: מדובר במטודה שנמצאת בכמה מהמחלקות של C#, ומטרתה לנסות ולהפוך string לאובייקט מסויים.לדוגמא, המטודה TryParse ב- int מנסה להפוך string ל… int.המטודה מקבלת 2 פרמטרים: את ה- string שאנחנו רוצים להמיר, ו- out argument שאליו היא תכניס את התוצאה, כשהסיבה ל- out היא שהפונקציה מחזירה bool שמטרתו לייצג האם הניסיון צלח או כשל.

בכל אופן, החידוש הבא פותר סיטואציה מעצבנת מאוד שמתעוררת גם כשמשתמשים בפונקציה הזו (אבל לא רק בה):את המשתנה out חייבים להגדיר לפני, דבר שקוטע את הרצף של הקוד לפעמים.

אני אתחיל בדוגמא, פעם היינו רושמים:

בC# 6 ניתן לרשום:

 

 

החידוש מאפשר להגדיר משתני out ברמת הקריאה לפונקציה, וחוסך את השורה המיותרת.זה אומנם לא נשמע משמעותי, אבל זה משפר פלאים את הקריאות של הקוד.

5. Exception Filters

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

זה נראה כך:

 

 

המילה השמורה when מאפשרת לתפוס Exceptions רק כאשר התנאי שבתוכה מתקיים.

6. שימוש ב- using על מחלקה סטטית

עוד חידוש שיקח לי זמן להתרגל אליו, הוא היכולת לעשות using לא רק ל- namespace אלא גם למחלקה סטטית.בצורה זו, ניתן להשתמש בפונקציות של המחלקה הסטטית ללא קריאה לה, כאילו היו אלו פונקציות לוקאליות של המחלקה שאנו כותבים בה.

הדוגמא הבאה תסביר את עצמה:

 

קצת לא ברור לטעמי, אבל מי אני שאשפוט.

7. String Interpolation In C# 6

מי שמכיר קצת PHP מכיר את האפשרות לרשום משתנים בתוך string, כאשר הם מוקפים ב- { }.ב- C# 6 מייקרוסופט שאבו את האפשרות הזו, וכאשר תכתבו $ לפני ה- string שלכם, הוא יוכל להכיל שמות משתנים.

לדוגמא:

8. Roslyn

החידוש האחרון שאדבר עליו הוא לא בדיוק חידוש ב- C# 6, אלא יותר ב- Visual Studio 2015:

Visual Studio 2015 היא הגרסא הראשונה של Visual Studio שבאה עם הקומפיילר החדש של .NET – רוסלין!למי שלא מכיר, רוסלין הוא קומפיילר חדש לחלוטין, שלעומת הישן, כתוב כולו ב- C# (במקום ב- C++), והוא Open Source תחת רישיון Apache.

רוסלין מפותח כבר כמה שנים, כאשר היה ניתן להשתמש בו באמצעות תוספים ל- Visual Studio, או ב- Visual Studio Community.

הצעד הזה חשוב מאוד, כיוון שהוא מלמד על זניחת הקומפיילר הקודם ומעבר לפלטפורמת Open Source, שבה באופן תאורתי – כל אחד יכול להרחיב את השפה, או למשל להשתמש בקוד של רוסלין על מנת לקמפל קוד C# לפלטפורמות אחרות.

זהו לבנתיים על C# 6.קיימים עוד שינויים חשובים ומעניינים, כמו await ו- nameof, אבל עליהם כבר ארחיב בפוסט אחר.

שמחתי לראות שהשפה ממשיכה להתרחב ולהתפתח.




מאמרים חדשים מומלצים: 

חשבתם שרכב חשמלי פוטר מטיפולים? תחשבו שוב! -  מאת: יואב ציפרוט מומחה
מה הסיבה לבעיות האיכות בעולם -  מאת: חנן מלין מומחה
מערכת יחסים רעילה- איך תזהו מניפולציות רגשיות ותתמודדו איתם  -  מאת: חגית לביא מומחה
לימודים במלחמה | איך ללמוד ולהישאר מרוכז בזמן מלחמה -  מאת: דניאל פאר מומחה
אימא אני מפחד' הדרכה להורים כיצד תוכלו לנווט את קשיי 'מצב המלחמה'? -  מאת: רזיאל פריגן פריגן מומחה
הדרך שבה AI (בינה מלאכותית) ממלאת את העולם בזבל דיגיטלי -  מאת: Michael - Micha Shafir מומחה
ספינת האהבה -  מאת: עומר וגנר מומחה
אומנות ברחבי העיר - זרז לשינוי, וטיפוח זהות תרבותית -  מאת: ירדן פרי מומחה
שיקום והעצמה באמצעות עשיה -  מאת: ילנה פיינשטיין מומחה
איך מורידים כולסטרול ללא תרופות -  מאת: קובי עזרא יעקב מומחה

מורנו'ס - שיווק באינטרנט

©2022 כל הזכויות שמורות

אודותינו
שאלות נפוצות
יצירת קשר
יתרונות לכותבי מאמרים
מדיניות פרטיות
עלינו בעיתונות
מאמרים חדשים

לכותבי מאמרים:
פתיחת חשבון חינם
כניסה למערכת
יתרונות לכותבי מאמרים
תנאי השירות
הנחיות עריכה
תנאי שימוש במאמרים



מאמרים בפייסבוק   מאמרים בטוויטר   מאמרים ביוטיוב