תרגיל - הסרת בלוקי קוד מ משפטי if
מפתחי תוכנה אוהבים לכתוב קוד שחיסכון בהקשות ורווח חזותי מבלי לוותר על קריאות. החל את צירוף המילים "פחות הוא יותר" רק בתהליך הפיתוח כאשר הוא הופך את הקוד שלך לקריא יותר ומבין יותר.
אם בלוק קוד זקוק לקוד אחד בלבד, רוב הסיכויים שאין צורך להגדיר בלוק קוד רשמי באמצעות סוגריים מסולסלים. אף על פי שברמה טכנית, אינך צריך אפילו להפריד את הקוד לשורות מרובות, שילוב משפטים בשורה אחת יכול להקריא את הקוד שלך.
הסרת סוגריים מסולסלים כמתואר לעיל היא שינוי סגנוני שאינו אמור להשפיע על הפונקציונליות של הקוד שלך. עם זאת, עליך לבצע שלבים כדי להבטיח שהשינויים שלך לא ישפיעו באופן שלילי על האופן שבו הקוד קריא. באפשרותך להעריך את ההשפעה של הסרת סוגריים מסולסלים ורווח לבן, ולאחר מכן לחזור לקוד המקורי אם אתה מציין שהשינויים שהפך את הקוד שלך לפחות קריא.
יצירת דוגמה של משפט if המשתמש בבלוק קוד
ודא שיש לך קובץ ריק Program.cs ב- Visual Studio Code.
במידת הצורך, פתח את Visual Studio Code ולאחר מכן בצע את השלבים הבאים כדי Program.cs קובץ בעורך:
בתפריט קובץ, בחר פתח תיקיה.
השתמש בתיבת הדו-שיח פתיחת תיקיה כדי לנווט אל התיקיה CsharpProjects ולאחר מכן לפתוח אותה.
בלוח Visual Studio Code EXPLORER, בחר Program.cs.
בתפריט בחירת קוד של Visual Studio, בחר בחר הכל ולאחר מכן הקש על מקש Delete.
הקלד את הקוד הבא בעורך הקוד של Visual Studio:
bool flag = true; if (flag) { Console.WriteLine(flag); }שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
הזן
dotnet runמשורת הפקודה Terminal כדי להפעיל את הקוד שלך.ודא שאתה רואה את הפלט הבא:
Trueהקוד שלך מייצג נקודת התחלה טובה, אך יש לך בלוק קוד הכולל שורת קוד בודדת. במקרה זה, האם יש צורך בחסימת קוד?
הסרת סוגריים מסולסלים
הקוד לעיל מבצע בלוק קוד כאשר הוא flagtrue. מאחר שבלוק קוד זה מכיל שורת קוד בודדת, יש לך אפשרות להסיר את סוגריים מסולסלים.
עדכן את הקוד שלך בעורך קוד Visual Studio באופן הבא:
bool flag = true; if (flag) Console.WriteLine(flag);הערה
הסרת סוגריים מסולסלים אינה משנה את העובדה
Console.WriteLine(flag);שזהו בלוק הקוד עבורifהמשפט.שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
שים לב שהפלט זהה לפלט לפני כן.
אתה עדיין אמור לראות את הפלט הבא:
Trueעם זאת, קיימות שתי שורות קוד מועטות יותר. חשוב ביותר, עם שורת הקוד מתחת להסטה
ifפנימה, הקוד עדיין ניתן לקריאה בקלות.
בחינת מידת הקריאות של טופס חד-קווי אם משפטי
בשלב זה, תעיין במקרה שבו מידת הקריאות של הקוד עלולה להיות מושפעת באופן שלילי.
מאחר שההצהרה if והשיטה אליהן Console.WriteLine() קצרות, ייתכן שתיתפת לשלב אותן בשורה אחת. אחרי הכל, תחביר C# if עבור המשפט מאפשר לך לשלב משפטים באופן זה.
עדכן את הקוד שלך בעורך קוד Visual Studio באופן הבא:
bool flag = true; if (flag) Console.WriteLine(flag);שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
שים לב שהפלט עדיין זהה.
קח דקה כדי לשקול את מידת הקריאות של הקוד.
דמיין את שתי דוגמאות הקוד הקודמות המקוננות בתוך מקטע גדול יותר של קוד. שילוב משפטי קוד (כפי שעשית בשלב 4) עלול להקשות על הקריאה.
בעת יישום הצהרה
ifהכוללת בלוק קוד חד-הצהרה, Microsoft ממליצה לשקול מוסכמות אלה:- לעולם אל תשתמש בטופס בעל שורה בודדת (לדוגמה: אם (flag) Console.WriteLine(flag);
- השימוש בסוגריים מסולסלים מתקבל תמיד, ונדרש אם בלוק כלשהו של משפט מורכב if/else if/.../else משתמש בסוגריים מסולסלים או אם גוף משפט בודד משתרע על פני קווים מרובים.
- ניתן להשמיט בסוגריים מסולסלים רק אם הגוף של כל בלוק המשויך להצהרה מורכבת מסוג if/else אם/.../else ממוקם בשורה בודדת.
כדי לבחון את השפעת מידת הקריאות עבור מבנים גדולים יותר של if-elseif-else, עדכן את הקוד באופן הבא:
string name = "steve"; if (name == "bob") Console.WriteLine("Found Bob"); else if (name == "steve") Console.WriteLine("Found Steve"); else Console.WriteLine("Found Chuck");שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
בעת הפעלת הקוד, הוא אמור ליצור את הפלט הבא:
Found Steveהקוד פועל, אך שורות קוד אלה צפות ושקשה לקרוא ןן. ייתכן שתרצה לעצב מחדש את הקוד כך שיכלול מעבר שורה אחרי
ifהמשפטים ,else ifוelse- .השווה את הקוד שזה עתה הפעלת עם הקוד הבא:
string name = "steve"; if (name == "bob") Console.WriteLine("Found Bob"); else if (name == "steve") Console.WriteLine("Found Steve"); else Console.WriteLine("Found Chuck");שים לב כמה קל יותר לקרוא את דוגמת הקוד השניה.
תקציר
להלן כמה דברים חשובים שיש לזכור לגבי בלוקים if של קוד הצהרה וקריאות:
- אם אתה מבינים שיש
if-elseif-elseלך רק שורת קוד אחת בתוך בלוקי הקוד של משפט, באפשרותך להסיר את הקו המסולסל של בלוק הקוד והרווח הלבן. Microsoft ממליצה להשתמש בסוגריים מסולסליםif-elseif-elseבאופן עקבי עבור כל בלוקי הקוד של משפט (קיימים או מוסרים באופן עקבי). - הסר רק את סוגריים מסולסלים של בלוק קוד כאשר הוא הופך את הקוד לקריא יותר. תמיד מקובל לכלול סוגריים מסולסלים.
- הסר את הזנת השורה רק אם היא הופכת את הקוד לקריא יותר. Microsoft מציעה שהקוד שלך יהיה קריא יותר כאשר כל משפט ימוקם בשורת קוד משלו.