PracticU

enum

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב › enum
מילון מושגים:
סוג נתונים - הגדרה של סוג הערך שמשתנה או עמודה יכולים להחזיק, למשל מספר שלם, טקסט או תאריך.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
Visual Studio - סביבת פיתוח משולבת (IDE) של מיקרוסופט לכתיבה, ניפוי והרצה של קוד, בעיקר בשפות .NET.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.

enum
enum הוא טיפוס נתונים שמכיל רשימה סגורה וקבועה של ערכים בעלי שם. ההרצאה מראה למה הוא עדיף על מספרים ומחרוזות כערכים קבועים, איך מגדירים אותו ואיך משתמשים בו בקוד.
למה לא מספרים או מחרוזות
1. מספר לא מסביר את עצמו: בפונקציה שמציגה מערך בשורה או בטור, קריאה עם הערך 1 או 2 לא ברורה לקורא בלי תיעוד.
2. מחרוזת נשברת בקלות: טעות הקלדה במילה כמו row יוצרת ערך שגוי, והקוד לא יזהה אותה.
הגדרה ושימוש
1. הגדרה מחוץ למחלקה: כותבים את המילה enum, שם לרשימה, ואת הקבועים בתוך סוגריים מסולסלים, למשל display עם row ו-column.
2. שימוש בקבוע: שולחים display.row או display.column, וכך מי שקורא את הקוד מבין מיד מה הכוונה. אחרי הנקודה Visual Studio מציעה את כל הערכים האפשריים.
3. המרה למספר ולהפך: מאחורי כל קבוע יש מספר. הראשון מקבל 0 וכל קבוע הבא עולה באחד, אלא אם קובעים מספר אחר. ההמרה נעשית בקאסטינג בשני הכיוונים.
4. המרה ממחרוזת: Enum.Parse מקבלת את הסוג, את המחרוזת ואפשרות להתעלם מאותיות גדולות וקטנות, ומחזירה ערך מסוג ה-enum.
enum מובנה ב-C#
1. ConsoleColor: רשימת הצבעים שהקונסול יכול להציג.
2. DayOfWeek: ימי השבוע. אפשר לבדוק כל יום בעזרת switch.
3. Enum.GetValues ו-Enum.GetNames: מחזירים את כל הערכים או את השמות שלהם, כדי לעבור עליהם בלולאה.
ערכים מרובים עם Flags
כשצריך לשמור כמה ערכים במשתנה אחד, למשל מזג אוויר שהוא גם גשום וגם מעונן, נותנים לכל קבוע חזקה של 2, מסמנים את האטריביוט [Flags] מעל ה-enum, ומשלבים ערכים בעזרת התו |.
אחרי ההרצאה התלמיד יודע להגדיר רשימת קבועים סגורה, להשתמש בה בקוד קריא ולשלב ערכים עם Flags. התרגילים בסוף ההרצאה מתרגלים את כל זה.
השיעור הבא בקורס: פרמטרים לפונקציה Main

פרקי ההרצאה: enum

  1. 00:00

    מה זה enum - רשימה סופית של קבועים

  2. 00:46

    הצגת מערך בשורה או בטור לפי קבוע

  3. 03:12

    הבעיה בקבועים מספריים בקוד

  4. 05:05

    קבועים כמחרוזות ולמה זה בעייתי

  5. 06:22

    הגדרת enum ושימוש בערכיו

  6. 08:24

    תיעוד הערכים בעורך הקוד

  7. 09:58

    קליטת בחירת תצוגה והמרה למספר

תמלול ההרצאה: enum

הטקסט המלא של הדקות הראשונות בהרצאה «enum» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

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

  2. 00:44

    בוא נניח שאנחנו רוצים פונקציה שתציג לנו את המערך אבל שתוכל להציג אותו באחת משתי שיטות או בשורה או בטור כאן אנחנו רואים שיש לנו שתי אפשרויות או שורה או טור מבחינתנו אלה יכולים להיות מיוצגים על ידי שני קבועים בוא נניח שאם היינו שולחים לפונקציה את המערך ואת המספר 1 אנחנו רוצים להציג את המערך בשורה

  3. 01:07

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

  4. 01:21

    בואו נכתוב את הפונקציה הזאת. יש לנו פה static void print array מקבלת מערך ובוא נניח שהיא תקבל גם איזשהו קבוע אינטג'רי שנקרא display ולפי ה-display אנחנו מציגים את המערך.

  5. 01:43

    בואו נרוץ על כל המערך ונציג את הדבר הבא קודם כל יש לנו arr על i לאחר מכן אנחנו רוצים להציג או תו שהוא enter או תו שהוא רווח.

  6. 02:09

    אז אנחנו יכולים לבצע פה איזושהי בדיקה לגבי הדיספליי. אם הדיספליי שווה 1, בואו אפילו נעשה את זה בצורה כזאת. אם הוא שווה ל-1, אז אנחנו רוצים להציג רווח, אחרת הוא אמור להיות 2. אנחנו נציג enter.

  7. 02:49

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

  8. 03:05

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

  9. 03:20

    וזה עובד פרפקט. אבל זה לא קוד מקצועי. למה? הסיבה שהדבר הזה הוא לא נחשב קוד מקצועי זה בגלל שמי שקורא את הקוד הזה בעצם קצת קשה לו להבין מה זה אומר המספר שנשלח.

  10. 03:36

    האם המספר הזה 2 מציין את מספר הפעמים שאני רוצה להציג את המערך? האם המספר הזה 2 מציין האם אני רוצה להציג את זה בשורה או בטור, למעלה או למטה?

  11. 03:48

    מה זה בדיוק אותו דיספליי שכתוב פה? אם אני עכשיו מסתכל על האינטליסנס, על הטולטיפ שיש לי, אז אני רואה דיספליי. אז ברור שבמציאות תיעוד היה עוזר לנו, ואם היינו מתעדים את הקוד בצורה מקצועית, כמו שלמדנו בעבר, אז היינו יכולים לראות מה בדיוק דיספליי, בתיעוד היינו יכולים לרשום 1 שווה row, 2 שווה column.

  12. 04:17

    display זה how to display the array, 1 row, 2 column. כאשר מישהו היה משתמש בפונקציה שלנו הוא היה יכול פשוט לראות את כל מה שכתבנו למעלה מוצג פה.

  13. 04:34

    display, how to display the array, 1 שווה row, 2 שווה column. אבל עדיין לא תמיד התיעוד שמופיע פה זה משהו שהוא קל מיידית להבין מה כתוב או למה הכוונה כי מתכנת שמסתכל על הקוד צריך במבט אחד להבין מה בעצם הפונקציה הזאת עושה למה שולחו לה שתיים אז אנחנו בעצם רואים שרשימה כזאת של קבועים קצת היא בעייתית כאשר אנחנו

  14. 05:05

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

  15. 05:34

    שהכל מוצג לי בשורה אם אני שולח קולום אני רואה שהמערכת מציגה לי את זה בעמודה כמובן שאפשר לשלוח כל מיני דברים אחרים לדוגמה בלה בלה ועדיין אני רואה שהמערכת עושה משהו אז כמובן שסטרינג זה גם כן משהו שהוא טיפה בעייתי מה גם שמישהו יכול להתבלבל ולרשום בטעות row עם שני w והוא התכוון

  16. 06:04

    ל-row 1 ועדיין יש פה איזה משהו לא בסדר. אז לעבוד עם סטרינגים בשביל לייצג קבועים זה גם כן משהו שהוא טיפה בעייתי בתכנות ולא נהוג לבצע את זה. אז מה זה enum? enum מאפשר לנו להגדיר רשימה סגורה סופית וקבועה של ערכים קבועים.

  17. 06:28

    כותבים enum מחוץ לקלאס, פשוט מאוד על ידי המילה enum ובסוגריים את הקבועים השונים: row.column בצורה כזאת. ל-enum אנחנו נותנים שם, לדוגמה: display.

  18. 06:48

    אז יש לנו פה enum, לרשימת הקבועים הזאת יש שם שהוא נקרא display, יש לו סך הכל שני קבועים: row ו-column. כעת הדבר הזה הפך להיות טיפוס נתונים חדש שאנחנו כרגע הגדרנו.

  19. 07:06

    בואו נראה. במקום string או אינטג'ר אנחנו יכולים לשלוח display, הדבר הזה הפך להיות טיפוס נתונים. אנחנו יכולים להגדיר ממנו מי ישתנה.

  20. 07:24

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

  21. 07:48

    כאשר אנחנו שולחים ערך לתוך האינם, אנחנו שולחים אותו באותה הצורה display.row או display.column. בואו נריץ ונראה שכעת הצגנו את המערך בשורה, נשלח column ונציג את המערך ב-tour.

  22. 08:10

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

  23. 08:31

    מה בדיוק הכוונה בדיספליי. אנחנו רוצים to print the array in המערך, ואנחנו רוצים להציג אותו בשורה. הוא יכול גם ללחוץ נקודה ולראות בדיוק את האפשרויות שיש פה.

  24. 08:44

    להדפיס את זה נניח בעמודה. כמובן גם את ה-in-ם אפשר לתעד על ידי זה שמגדירים אותו בצורה כזאת. Displaying in one row, Displaying in one column, את ה-in-ם עצמו גם אפשר לתעד כאן.

  25. 09:27

    וכעת אפשר להסתכל ולראות שאם יש לנו גישה לדיספליי אנחנו יכולים לראות פה how to display something, row אנחנו רואים פה displaying in one row ו- displaying in one column זאת אומרת שגם את האינם עצמו אנחנו יכולים לתעד שיהיה יותר ברור למי שמשתמש איתו מה כל אחד מהפריטים שלו מציין.

  26. 09:58

    כעת בוא נניח שאנחנו רוצים לקלוט מהיוזר איך בדיוק להציג את המערך נניח שקלטנו את המערך הזה מהיוזר ואנחנו רוצים גם לקלוט את הקבוע שמציין איך בדיוק היוזר רוצה להציג את המערך.

  27. 10:12

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

  28. 10:29

    נבצע קאסטינג, display.row, נריץ, ונראה שמאחורי row יושב 0. זאת אומרת

לקורס המלא: קורס C# למתחילים אונליין

ההרצאה הקודמת: מחרוזת - Strings

ההרצאה הבאה: פרמטרים לפונקציה Main

הרצאות קשורות מקורסים אחרים

  • Enum Conversions
  • Array - Enum
  • יצירת enum ב-TypeScript
  • איסוף מידע בלינוקס - Recon & Enum - עם MSFconsole

קורסים נוספים במסלול

  • קורס פיתוח משחקים יוניטי - Unity - שפת #C