יסודות הפניה ל-Null
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 31 מתוך 66.
ב־C#, הפניה ל־null מייצגת היעדר של אובייקט. הבנת אופן העבודה עם ערכי null חיונית לכתיבת קוד חסין.
הכרז על משתנה מסוג הפניה (כמו string) בלי להקצות לו ערך:
string name = null;המשתנה 'name' מחזיק כעת בהפניה null, כלומר הוא אינו מצביע על שום אובייקט בזיכרון.
ניסיון להשתמש בהפניה null מבלי לבדוק אותה עלול לגרום לשגיאות בזמן ריצה:
string name = null;
// פעולה זו תגרום לחריגת NullReferenceException
int length = name.Length;אפשר לבדוק אם הפניה היא null לפני שמשתמשים בה:
string name = null;
if (name != null)
{
// אפשר להשתמש ב-name כאן בבטחה
int length = name.Length;
}אפשר גם להקצות למשתנה ערך שאינו null:
string name = null;
name = "John";
// עכשיו אפשר להשתמש ב-name בבטחה
int length = name.Length; // הערך של length יהיה 4אתגר
קלצור מתודה בשם ProcessName שמקבלת פרמטר מחרוזת בשם name. המתודה צריכה:
- לבדוק אם name הוא null
- אם name הוא null, להדפיס: "Name is null"
- אם name אינו null, להדפיס: "Name length is X" (כאשר X הוא האורך של name)
נסו בעצמכם
using System;
class Program
{
public static void ProcessName(string name)
{
// כתבו כאן את הקוד שלכם
}
static void Main(string[] args)
{
string input = Console.ReadLine();
// המירו את המחרוזת "null" לערך null ממשי
string name = input.ToLower() == "null" ? null : input;
ProcessName(name);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין