
ArrayList יכול להכיל כל סוג, כי כל משתנה הוא object. לכן הקוד מתקמפל גם כשקוראים מספר ממקום שבו נמצא טקסט.List<int>: הסוגריים הזוויתיים קובעים את הטיפוס של האוסף. ניסיון להוסיף טקסט מתגלה כבר בזמן הפיתוח, עם קו אדום.cast, כי הקומפיילר יודע מה הסוג.Dictionary<TKey, TValue>: אוסף של מפתח וערך, שבו שני הטיפוסים נקבעים בזמן היצירה.<T> אחרי שם המחלקה, והטיפוס T משמש בשדות ובפרמטרים שבתוכה.ListOfItems<T> מקבלת מערך בקונסטרקטור ומחזירה את מספר האיברים. עם מערך של ארבעה מספרים היא מחזירה 4.הטקסט המלא של הדקות הראשונות בהרצאה «Generics» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, שמי אבי וההרצאה שאני עומד להעביר היום תעסוק בנושא מאוד חשוב ומאוד מעניין שנקרא ג'נריקס. ג'נריקס למעשה זה יכולת שקיימת בדוטנט ומאפשרת לפתח קול בצורה יותר טובה וגם עוזרת לנו להימנע משגיאות.
אז במהלך ההרצאה הזאת אני הולך להסביר מה זה ג'נריקס, מה היתרון של ג'נריקס שנותן לנו, מה משמעות המונחים של Development Time, time ואיך זה למעשה מתקשר לג'נריקס לא הסברתי את המונחים האלה במהלך ההרצאות האחרונות אבל מכיוון שיש איזה קשר די הדוק לג'נריקס אז אני הולך להסביר את זה ואנחנו גם נלמד על סוגים שונים שכבר קיימים בדוטנט
שמשתמשים ביכולת הזאת שנקראת ג'נריקס וגם ניצור מחלקה בעצמנו כדי להשתמש בג'נריקס אז בוא ניגש לקוד זהו לנו פרויקט חדש, נקרא לו lesson generics.
אוקיי, אז אתם יודעים מה, לפני שאני בכלל אתחיל להסביר מה זה generics, בואו אני אציג בפניכם איזו בעיה קטנה, ואני אראה איך אפשר לפתור את זה בעזרת היכולת הזאת שנקראת generics.
אז תארו לעצמכם שיש לנו פה שני משתנים, אחד מהם נקרא לו name, יהיה השם שלי, ולמשתנה השני יהיה מסוג של int שנקרא לו money, נקרא לו salary.
אוקיי, עכשיו באחת מההרצאות האחרונות אתם הכרתם בוודאי את הקלאס שנקרא הרייליסט אוקיי הרייליסט זה סוג של קלאס שמאפשר להכניס בתוכו איברים בדומה להריי אז מה שמיוחד בקלאס הזה זה שאפשר להכניס לתוכו כל סוג של משתנה זאת אומרת הקלאס הזה אם
אני אלחץ על שיפט קונטרול וספייס רווח אני אראה שהוא מקבל לתוכו הוא יכול לקבל לתוכו סליחה אם אני אעשה הריי ואני אלחץ קיש על אד אני אראה שהוא מקבל לתוכו משתנה מסוג של אובייקט, סוג של אובג'קט.
אובייקט זה הטיפוס הכללי ב.NET ולמעשה כל אובייקט שקיים יורש ממנו. גם אובייקטים שאנחנו יוצרים בעצמנו הם למעשה יורשים מאובייקט ככה שכל איבר הוא אובייקט.
אז אם אני אעשה את הפעולה הבאה הזאת, אני אכניס את name ואז אני אעשה array, אני אכניס עכשיו גם את int, את ה salary. אתם רואים שאין לי שום בעיה, לא קיבלתי שום שגיאה או משהו כזה, הכל בסדר.
אם אני אפילו גם אבנה, אעשה בילד, אני גם אראה שהכל בילד סקסידי כמו שאתם רואים למטה.
אם אני רוצה עכשיו לדוגמה להציג, להדפיס למסך את שני המשתנים האלה. אז אם אני אחד אחריו קונסול נקודה רייטליין ואני אכניס את הערך של name. סליחה, אני אכניס את הערך של name שנמצא במקום האפס.
המשתנה הזה נמצא באינדקס של אפס ואני אעשה גם קונסול נקודה רייטליין של הריי במקום האחד. בואו נראה שזה מדפיס לי את מה שזה אמור להדפיס לי.
אז אני רואה שזה הדפיס לי את אבי ואת שמונת אלפים. יפה. עכשיו בואו נגיד שאני רוצה לקבל את הערך. אני רוצה לקבל את הערך של סלארי, הערך שיש לי פה.
עכשיו לצורך הדוגמה בוא נניח שאני שכחתי, לדוגמה באיזה אינדקס, באיזה מיקום בכל ה-collection הזה סלארי נמצא, המשתנה הזה נמצא.
אז בואו ניצור פה משתנה שנקרא לו my salary ואני עכשיו הולך לגשת למשתנה שלא נמצא במקום האחד שבו נמצא המשתנה הזה מסוג של אינט, אני הולך לגשת למשתנה שנמצא במקום האפס. זאת אומרת אני עכשיו הולך לגשת למשתנה שהוא