מה חדש ב- C# 6? | Publisher
מאמרים ותוכן איכותי להפצה חופשית ברשת

שלום, אורח

זכור אותי

שחזור סיסמא

קטגוריות


מה חדש ב- C# 6?

פורסם בתאריך 10/25/2015 ע"י אלירן פאר בקטגוריה מדע וטכנולוגיה | צפיות: 1156 | התחבר לדירוג המאמר

תגיות המאמר: C#, .NET, אלירן פאר, Eliran Pe'er, WPF

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


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


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

אודות אלירן פאר

אלירן בן 22, מפתח תוכנה, יוצא יחידה טכנולוגית בחיל האוויר, בעל מעל 6 שנות ניסיון בפיתוח אפליציות Web ו- Desktop במגוון שפות ופלטפורמות. נכון להיום, אלירן מועסק כמפתח .NET בסביבת WPF בחברה במרכז הארץ. בין השאר, הניסיון של אלירן כולל את הטכנולוגיות הבאות: C#, WPF, MVVM, NHeibernate, PHP, Oracle, MySQL SQL Server, HTML5, CSS3, jQuery, AngularJS ו- NodeJS.

אלירן פאר

התחבר לשליחת תגובה

לא פורסמו עדיין תגובות למאמר זה

RSS | הנחיות כתיבה | שאלות נפוצות | מאמרים מובילים | מאמרים אחרונים | הכותבים המובילים | צור קשר