PracticU

תרגילים על Reflection

בלי כתוביותעם כתוביות
PracticU › קורס תכנות מתקדם - #Advanced .NET C › תרגילים על Reflection
מילון מושגים:
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).

תרגילים על Reflection
בתרגילי Reflection משתמשים בקוד כדי לבדוק טיפוסים, ליצור אובייקטים ולקרוא לפונקציות בלי להשתמש במחלקה ישירות, כולל גישה לחברים לא ציבוריים.
התרגילים
1. הצגת string: הציגו את כל הקונסטרקטורים, ה-data members (fields), המתודות והפרופרטיז של string, כולל אלה שאינם public, ונסו להציג גם את הסטטיים.
2. מחלקה Country: שדות ציבוריים CountryName ו-CapitalCity ושדה פרטי _size, עם פרופרטי Size שבודק שהערך אינו שלילי.
3. שימוש ב-Reflection על Country: צרו אובייקט בלי להשתמש במחלקה ישירות. הכניסו ערכים לשמות ולפרופרטי, והציגו בעזרת פונקציית Print. אחר כך הכניסו ערך ישירות לשדה הפרטי _size והציגו שוב.
4. טעינת DLL דינמית: DLL עם שלוש מחלקות A, B ו-C. אפליקציית קונסול טוענת אותו דרך reflection, בלי references, ומציגה את שמות הטיפוסים.
5. פונקציה פרטית: ב-DateTime קיימת פונקציה פרטית וסטטית DateToTicks. קראו לה דרך reflection עם year, month ו-day, והציגו את הערך. כיוון שהיא סטטית, מעבירים ל-Invoke את הערך null במקום אובייקט.
6. טיפוסים ב-System.Windows.Forms: הציגו עבור כל טיפוס אם הוא class, value type או reference type, מערך, אבסטרקטי, ובעל גישה public.
התרגילים מדגימים ש-reflection מאפשר להגיע גם למה שמוסתר מהקוד הרגיל.
השיעור הבא בקורס: Attributes

פרקי ההרצאה: תרגילים על Reflection

  1. 00:00

    רפלקשן על טיפוס string

  2. 00:41

    יצירת אובייקט Country ברפלקשן

  3. 01:18

    טעינה דינמית של DLL ברפלקשן

  4. 01:57

    קריאה למתודה סטטית פרטית

תמלול ההרצאה: תרגילים על Reflection

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

  1. 00:02

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

  2. 00:32

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

  3. 00:43

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

  4. 00:59

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

  5. 01:23

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

  6. 01:46

    כמובן אמור להציג לכם A, B ו-C. בתוך טיפוס הנתונים דייט טיים קיימת פונקציה סטטית שהיא פרייבט והיא נקראת date2ticks אתם לא יכולים בכלל לקרוא לה ואתם

לקורס המלא: קורס תכנות מתקדם ב‑#C ודוט-נט

ההרצאה הקודמת: Reflection - חלק 2

ההרצאה הבאה: Attributes

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

  • תרגילים 1-3
  • תרגילים על מטריצות בג'אווה
  • תרגילים מסכמים בנושא עיצוב

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

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס WCF - תקשורת למתקדמים בדוט-נט