
int num = 8, int הוא הטיפוס, num הוא המשתנה ו-8 הוא המידע.int הוא struct: מאחורי int עומד הטיפוס Int32 שב-.NET הוא struct. שפות שונות בדוטנט כותבות אותו בשם אחר, אבל הטיפוס האמיתי זהה.Person שמכיל Address.class: הישות המרכזית של התכנות מונחה העצמים. ניתן לרשת ממנה ולהגדיר בה מתודות.struct: ישות עזר קטנה, כמו זמן, נקודה או קואורדינטה.enum: רשימה של קבועים, כמו צבעים או ימות השבוע.interface ו-delegate: שתי המילים שיילמדו בהמשך הקורס.string מוגדר ב-.NET כ-class, ו-double כ-struct. לכן גם טיפוסים מוכרים נוצרים מאחת המילים השמורות האלה.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת טיפוסים חדשים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון הזה אנחנו הולכים לעצור ולהסתכל על דברים שלמדנו מנקודת מבט נוספת. אנחנו הולכים בעצם להסתכל על המילה Struct והמילה Class והמילה Enum ולראות מה באמת המשמעות שלהם.
אבל מה שאני רוצה לעשות קודם כל, אני רוצה לפתוח איזשהו משתנה, Int, לקרוא לו Num ולהכניס לתוכו את המספר 8. ועכשיו אני רוצה להסתכל רגע על מה בעצם יש לנו בתוכנית הזאת.
אנחנו רואים שהגדרנו כאן אינטג'ר שזה בעצם הטיפוס נתונים לאחר מכן הגדרנו משתנה שקראנו לו num ולאחר מכן הכנסנו אליו את המספר 8. עכשיו בואו נחתוך את הפקודה הזאת לחלקים ונבין כל חלק מהו.
נתחיל מ-8. 8 זה המידע שבסופו של דבר ברצוננו לאכלס איפשהו. המידע הזה היה צריך להיכנס לתוך איזשהו תא זיכרון.
תא הזיכרון זה ה-num. היה אמור להיווצר מאיזשהו טיפוס נתונים שזה האינט אבל השאלה היא מה יצר את האינט אם אנחנו עכשיו לוחצים על F12 אנחנו מגיעים בדיוק להגדרה של אינט עכשיו אנחנו רואים שבעצם ההגדרה היא לא אינט אלא אינט 32 בדוט נט אינט 32 זה basically integer אינט למעשה זה כינוי לאינט 32 אינט 32 זה
הטיפוס האמיתי שקיים במערכת הסיבה לזה היא בגלל שבדוטנט יש כל מיני שפות ובכל שפה ההגדרה של אינטג'ר היא קצת אחרת ולכן מאחורי הקלעים חייב לשבת אותו הטיפוס נתונים בדיוק וזה יהיה int32 כל שפה בדוטנט מגדירה את int32 בצורה אחרת לדוגמה c-sharp כותבת int visual basic.net כותבת אינטג'ר אבל מאחורי הקלעים כולם זה int32
אז זאת הסיבה שאנחנו רואים את השוני בשם אבל מבחינתנו זה אינטג'ר אם אנחנו מסתכלים על מה יצר את האינטג'ר אנחנו רואים שזאת המילה struct זאת אומרת שיש לנו פה ארבעה מרכיבים יש לנו את המילה struct במקרה הזה שיוצרת טיפוס נתונים חדש struct זה בכחול כי זאת מילה שמורה של c-sharp
וכל טיפוס נתונים שקיים הוא בטורקיז אינטג'ר הזה זה גם טיפוס נתונים אבל הוא נחשב גם כן מילה שמורה של c-sharp יחד עם הקבוצה של הטיפוסים הפרימיטיביים ככה זה נקרא טיפוס פרימיטיבי וטיפוס שהוא חלק מהשפה ולכן הוא בכחול כמו המילים השמורות אבל בסופו של דבר זה טיפוס נתונים ואנחנו רואים אותו כאן בטורקיז כמו שאנחנו רואים את
זה בטורקיז וכמו שאנחנו רואים את זה בטורקיז וכל אלה הם טיפוסי נתונים כולל הפרסון שיצרנו וכל הטיפוסי הנתונים הנוספים שיצרנו.
אז בעצם סטראקט יוצרת לנו טיפוס נתונים חדש. מה אנחנו עושים עם טיפוס נתונים? אנחנו יוצרים ממנו משתנה. מה אנחנו מכניסים בתוך משתנה? מידע.
אז אם אנחנו מסתכלים מי יותר בכיר למי רק מבחינת סדר כזה, אז אנחנו יכולים לראות שסטראקט הוא הבכיר ביותר כי הוא זה שיוצר טיפוסי נתונים.
לאחר מכן טיפוס הנתונים הוא בכיר יותר למשתנה כי הוא זה שבורא את המשתנה או יוצר את המשתנה. לאחר מכן המשתנה בכיר יותר למידע כי הוא זה שמאכלס את המידע.
למרות שהמידע הוא לא פחות חשוב כי בסופו של דבר זה מה שאנחנו רוצים לאכלס בזיכרון. אז בעצם יש לנו פה את ארבעת המרכיבים האלה, יש לנו את ה-struct שזה ה-data type, יש לנו את ה... או יותר נכון מילה שיוצרת את ה-data type.
לאחר מכן יש לנו את האינט שהוא הדאטה טייפ, לאחר מכן יש לנו את ה-num שהוא המשתנה, ולאחר מכן יש לנו את ה-8 שהוא המידע שבסופו של דבר אנחנו רוצים להכניס לתוך המשתנה. עכשיו, אם אנחנו מסתכלים על מה באמת המשמעות פה של טיפוס נתונים של אינט, אז אנחנו רואים שהמשמעות של אינט זה יכולת להגדיר לנו משתנה ולומר מה בדיוק אנחנו יכולים להכניס בתוך
המשתנה. ברגע שיצרנו משתנה על ידי אינטג'ר, כולנו יודעים שבתוכו אנחנו יכולים להכניס רק מספר שלם. ברגע שיצרנו משתנה על ידי סטרינג, כולנו יודעים שבתוכו אנחנו יכולים להכניס אחרוזת.
ברגע שיצרנו משתנה על ידי דאבל, כולנו יודעים שבתוכו אנחנו יכולים להכניס מספר עם נקודה עשרונית. זאת אומרת, טיפוס הנתונים יוצר משתנה ואומר מה בעצם אפשר להכניס לתוך המשתנה.
כל החומר הזה אנחנו כבר מכירים ממודול האלגוריתמיקה והגדרת משתנים. למה אני מזכיר את זה כאן? שימו לב שמי שיצר את אינטג'ר זה סטראקט ועל זה אנחנו דיברנו במודול הזה ומי שיצר את סטרינג בואו ניגש אליה עם F12 זה קלאס ומי שיצר את דאבל F12 זה גם כן סטראקט וזה אומר שכל פעם שאתם עכשיו משתמשים במילה
סטראקט או שאתם משתמשים במילה קלאס בכדי ליצור טיפוסי נתונים משלכם או אישויות משלכם אז אתם בעצם בונים טיפוסי נתונים חדשים ולאחר מכן מה שניתן לבצע עם הטיפוסי נתונים האלה זה לבנות איתם משתנים מה בעצם אומר טיפוס נתונים מה אנחנו יכולים להכניס בתוך משתנה אז טיפוסי הנתונים שאתם יוצרים אומרים לכם מה ניתן להכניס בתוכם
מגדירים את הזיכרון ולאחר מכן אתם יכולים להכניס בתוכם מידע אז אם אנחנו ניכנס בדיוק לקונספט הזה ונלך כרגע ונבנה בעצמנו איזשהו טיפוס נתונים שהוא שלנו בוא נניח עם המילה קלאס נתחיל עם קלאס ואנחנו מקודם בנינו כל מיני קלאסים אז בואו נבנה עכשיו עוד פעם את פרסון ונגדיר דבר כזה לפרסון כל מה שאני רוצה שיהיה לו זה first name ו-last name אני אעשה
אותו הכי simple שניתן עושים אותו פה side by side וכעת מה יש לנו פה שוב פעם אנחנו רואים פה את המילה קלאס אנחנו רואים שהיא יצרה טיפוס נתונים חדש ושימו לב שהטיפוס נתונים הוא בטורקיז אוקיי יש לנו פה את person זה הדאטה טייפ שלנו מה אנחנו יכולים לעשות עם person ליצור ממנו משתנה נקרא לזה מי פרסון מה אנחנו יכולים לעשות עם המשתנה להכניס לתוכו מידע אם אנחנו מבצעים את האנלוגיה הזאת
אנחנו רואים שזה ממש אותו הדבר כמו הפקודה הזאת. בפקודה הזאת יש בעצם, מתחבאים להם ארבעה אלמנטים אסטראקט שיצרה את האינטג'ר, לאחר מכן האינטג'ר שזה הטיפוס נתונים, לאחר מכן משתנה שנוצר ממנו ולאחר מכן מידע ואנחנו רואים בדיוק את אותו הדבר כאן הקלאס יצרה טיפוס נתונים מהטיפוס נתונים פרסון אנחנו פותחים משתנה זה יהיה מיי פרסון
ובתוך המייפרסון אנחנו מכניסים את המידע שלנו והמידע יהיה מוישה לוי. שימו לב רק שנם מסוג אינטג'ר הוא טיפוס נתונים מאוד מאוד פשוט שהוא בעצם מגירה אחת כי הוא טיפוס נתונים פרימיטיביים.
כל הטיפוסים הפרימיטיביים אפשר להכניס לכל משתנה רק ערך אחד ויחיד. וקלף מאפשרת לנו לבנות טיפוס נתונים שנחשב טיפוס נתונים מורכב. הוא מורכב ממספר שדות שכל שדה זה בעצם טיפוס נתונים פרימיטיבי, או שכל שדה יכול להיות גם טיפוס נתונים מורכב אחר.
לדוגמה, יכולה להיות לנו איפשהו קלאס אדרס, כמובן במציאות בקובץ נפרד, ויכול להיות לנו פה public string city, public string street, house number וזיפ קוד, ובתוך person יכול להיות לנו address.
זאת אומרת שאנחנו יכולים בתוך person להגדיר גם טיפוס נתונים יותר מורכב כמו אדרס. אוקיי, אז יש לנו פה את ה-class והיא יוצרת לנו טיפוס נתונים. מהטיפוס נתונים אנחנו מגדירים משתנה.
משתנה מורכב עם מספר שדות מורכבים ובתוכו אנחנו מכניסים מידע. זה בדיוק אותו הדבר כמו השורה הזאת. מה בקשר ל-struct? אז גם struct מאפשרת לנו להגדיר טיפוס נתונים משלנו.
בואו נפתח כביכול class, נקרא לה point ונשנה את המילה class ל-struct. נגדיר x ו-y, את זה נסגור, נשים את הפוינט עכשיו side by side ונבנה אובייקט מהסטראקט.
נכניס לתוך האובייקט שלנו ערכים ונסתכל עוד פעם שיש לנו בדיוק את הקונספט שהיה לנו פה. קודם כל סטראקט אפשרה לנו לבנות טיפוס נתונים חדש.