אופרטורים לוגיים מותנים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 37 מתוך 66.
C# מספקת אופרטורים מיוחדים לעבודה תמציתית עם ערכי null. שני אופרטורים שימושיים הם ?? (אופרטור איחוד null) ו־?. (האופרטור המותנה של null). שים לב שאלה אופרטורים לטיפול ב־null: המונח "אופרטורים לוגיים מותנים" ב־C# מתייחס ל־&& ול־||.
תחילה נחקור את אופרטור איחוד ה־null (??). אופרטור זה מחזיר את האופרנד השמאלי אם הוא אינו null, אחרת הוא מחזיר את האופרנד הימני.
צרו משתנה מחרוזת שעשוי להיות null:
string name = null;השתמש באופרטור מיזוג ערכי null כדי לספק ערך ברירת מחדל:
string displayName = name ?? "Guest";לאחר הרצת הקוד שלמעלה, המשתנה displayName מכיל:
"Guest"אם היה ערך ל־name, היה נעשה שימוש בערך הזה במקום:
string name = "Alice";
string displayName = name ?? "Guest";כעת displayName מכיל:
"Alice"אתגר
קלצרו מתודה בשם getSafeValue שמקבלת שני ארגומנטים:
- מספר שלם nullable (
int?value) - מספר שלם (
intdefaultValue)
המתודה צריכה להחזיר את הערך אם הוא אינו null, אחרת עליה להחזיר את defaultValue. השתמשו באופרטור coalescing-null (??) כדי להשיג זאת.
נסו בעצמכם
using System;
class GetSafeValue
{
public static int getSafeValue(int? value, int defaultValue)
{
// כתבו כאן את הקוד שלכם
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין