מהו Null Coalescing Operator ב-C#

Mhw Null Coalescing Operator B C



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

מאמר זה יפרט על מפעיל איחוד אפס .







מהו אופרטור Null Coalescing ב-C#

ב-C#, הסמל של ה- מפעיל איחוד אפס הוא ?? . אם משתנה הוא null, הוא משמש כדי לתת לו ערך ברירת מחדל.



למשל, אם יש לנו משתנה איקס שיכול להיות null ואנו רוצים להקצות לו ערך ברירת מחדל של 10 אם הוא null, נוכל להשתמש ב- מפעיל איחוד אפס כדלהלן:



int y = x ?? 10





הצהרה זו תקצה את הערך של 10 ל-y אם x הוא ריק, אחרת, הוא ייקח את הערך של x.

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



הדרך המסורתית לכתוב את הקוד ללא ה מפעיל איחוד אפס הוא:

אם ( התוצאה היא ריק )

לַחֲזוֹר רשימה חדשה < אדם > ( ) ;

לַחֲזוֹר תוֹצָאָה;

אנו יכולים לתמצת זאת לשורה אחת המכילה גם את ערך ברירת המחדל שאינו ריק וגם את בדיקת ה-null באמצעות מפעיל איחוד אפס :

לַחֲזוֹר תוצאה?? רשימה חדשה < אדם > ( ) ;

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

  • משתנה חייב להיות האופרנד השמאלי של ה-?? מַפעִיל.
  • האופרנד השמאלי של האופרנד ??= לא יכול להיות סוג שאינו ניתן ל-null.
  • לא ניתן להעמיס יתר על המידה על אופרטור התאחדות האפס.
  • האופרטור מתלכד אפס הוא אסוציאטיבי ימני. המשמעות היא שביטוי כגון a ??= b ??= c יוערך כ-??= (b ??= c).

שימושים ב-Null Coalescing Operator

השימושים של מפעיל איחוד אפס הם:

1: מתן ערכי ברירת מחדל

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

שימוש במערכת;

תוכנית כיתה ציבורית
{
ריק סטטי ציבורי ראשי ( )
{
int? nullableValue = null;
int value = nullableValue ?? 10 ;
Console.WriteLine ( 'הערך הוא:' + ערך ) ;
}
}

בדוגמה לעיל, אנו מגדירים את המספר השלם nullableValue משתנה ולתת לו ערך אפס. ה מפעיל איחוד אפס משמש לאחר מכן כדי לספק למשתנה הערך ערך ברירת מחדל של 10 אם nullableValue הוא null. לאחר מכן, הערך מוצג בקונסולה.

2: הימנעות מחריגים של הפניה אפסית

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

שימוש במערכת;

כיתה ציבורית myClass
{
שם מחרוזת ציבורית { לקבל; מַעֲרֶכֶת ; }
מזהה אינט ציבורי { לקבל; מַעֲרֶכֶת ; }
}
תוכנית כיתה ציבורית
{
ריק סטטי ציבורי ראשי ( )
{
myClass person = null;
שם מחרוזת = אדם?.שם ?? 'לא ידוע' ;
int תְעוּדַת זֶהוּת = אדם?. תעודת זהות ?? 0 ;
Console.WriteLine ( 'שם:' + שם ) ;
Console.WriteLine ( 'מזהה:' + תְעוּדַת זֶהוּת ) ;
}
}

שֵׁם ו תְעוּדַת זֶהוּת הם תכונות של הכיתה שלי מחלקה בקוד למעלה. על מנת לגשת בבטחה ל שֵׁם ו תְעוּדַת זֶהוּת המאפיינים של אובייקט האדם ומספקים ערכי ברירת מחדל אם הם null, הוא מגדיר משתנה אדם ל-null ולאחר מכן משתמש באופרטור המותנה null (?.) וב- מפעיל איחוד אפס (??). לאחר מכן, הקונסולה מודפסת עם ערכי השם והזיהוי.

3: הסרת תנאי אם-אחר מיותר

אתה יכול גם להשתמש באופרטור ה-null coalescing כדי להפוך את הקוד שלך לתמציתי וקריא יותר על ידי הסרת הצורך במיותר אם-אחר תנאים .

לדוגמה:

שימוש במערכת;

דוגמה למרחב שמות
{
class myClass
{
ריק סטטי ראשי ( חוּט [ ] args )
{
int? nullableValue = null;
ערך int;
אם ( nullableValue ! = ריק )
{
value = nullableValue.Value;
}
אַחֵר
{
ערך = 10 ;
}
Console.WriteLine ( 'הערך הוא:' + ערך ) ;
}
}
}

בקוד למעלה, אופרטור ה-null coalescing ?? משמש להקצאת הערך של nullableValue להעריך. אם nullableValue אינו null, אז לערך יהיה אותו ערך כמו nullableValue . אם nullableValue הוא null, אז הערך יהיה 10. ה- אחרת מצב אינו נדרש עוד, והקוד כעת קצר יותר וקל יותר להבנה.

סיכום

ה מפעיל איחוד אפס ב-C# היא תכונה רבת עוצמה המפשטת את הדרך שבה מפתחים מטפלים בערכים null בפרויקטים שלהם. אופרטור זה מספק תחביר קומפקטי, יעיל וגמיש להקצאת ערכי ברירת מחדל למשתנים שעשויים להיות null. על ידי שימוש ב מפעיל איחוד אפס , מפתחים יכולים לכתוב קוד קריא, ניתן לתחזוקה ויעיל יותר, ולחסוך זמן ומאמץ בתהליך הפיתוח.