סיכום – בטיחות מול Null
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 35 מתוך 66.
אתגר
קלצרו מתודה בשם SafelyProcessData שמקבלת שני פרמטרים:
- מחרוזת
nameשיכולה להיות null - מספר שלם nullable בשם
age
המתודה צריכה:
- לבדוק אם
nameהוא null או ריק, באמצעות דפוסי בדיקת null מתאימים - לבדוק אם ל-
ageיש ערך - להחזיר מחרוזת מעוצבת כך:
- אם
nameהוא null, להחזיר "No name provided" - אם
nameריק או מכיל רווח לבן בלבד, להחזיר "Invalid name" - אם
ageהוא null, להחזיר "Name: [name], Age: Unknown" - אחרת, להחזיר "Name: [name], Age: [age]"
- אם
הקפידו להשתמש בטכניקות תכנות הגנתי כדי לטפל בכל תרחישי ה-null האפשריים!
נסו בעצמכם
using System;
class Program
{
// ממשו כאן את המתודה SafelyProcessData
static void Main(string[] args)
{
string nameInput = Console.ReadLine();
string ageInput = Console.ReadLine();
// טפלו במקרה שבו הקלט הוא המחרוזת "null"
string name = nameInput == "null" ? null : nameInput;
int? age = null;
if (ageInput != "null")
{
age = int.Parse(ageInput);
}
string result = SafelyProcessData(name, age);
Console.WriteLine(result);
}
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין