→ חזרה לעמוד הקודם
// סיכום וחומר לימוד

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

מבני נתונים · 899271פולימרפיזם

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

ב-C#, כאשר עובדים עם טיפוסים מבוססי מחלקות (Class Types), יש שני סוגים של המרות עיקריות:

1. המרה מרומזת (Implicit Conversion) – "המרה כלפי מעלה" (Upcasting)

2. המרה מפורשת (Explicit Conversion) – "המרה כלפי מטה" (Downcasting)

המרה מרומזת (Upcasting)

Upcasting הוא תהליך שבו אובייקט של מחלקה נגזרת מומר אוטומטית (ללא צורך ב-Cast) לטיפוס של מחלקת הבסיס שלו. (הפניה מטיפוס אב-בסיס לעצם מטיפוס בן-מחלקה הנגזרת מהבסיס) מאפיינים: ️✔ בטוח לשימוש – לא מאבד מידע. ️✔ מתבצע אוטומטית ע"י הקומפיילר. ️✔ ניתן לגשת רק לשדות ולמתודות הקיימות במחלקת הבסיס.

דוגמא:

קטע קוד, טבלה או תרשים מתוך המקור

מתי משתמשים ב-Upcasting?

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

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

המרה מפורשת (Downcasting)

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

קטע קוד, טבלה או תרשים מתוך המקור

בעיה אפשרית בהמרה מפורשת

אם ננסה להמיר מופע שאינו מהמחלקה המתאימה, תתרחש שגיאה:

קטע קוד, טבלה או תרשים מתוך המקור

פתרון באמצעות is ו- as

כדי להימנע משגיאות, ניתן להשתמש ב-is או as:

קטע קוד, טבלה או תרשים מתוך המקור

עכשיו מתרגלים

תרגול בנושא פולימרפיזם

  1. משחק לתרגולמסיכות OOP
הורדת הקובץ המקוריPDF · המרות בין טיפוסי מחלקות