[נכתב ע”י שני אלחרר]
והטיפ היומי הוא בנושא המרות (Casts).
לפעמים אנחנו לא מודעים לסוג של אובייקט, אז אנחנו עושים Castים כך:
|
|
השיטה הזו לא נכונה, כיוון שזה לא נכון להשתמש בExceptionים לFlow הרציף של התוכנה.
כדי לבדוק אם אובייקט הוא מסוג מסוים נשתמש במילת המפתח is, אם אנחנו רוצים לשמור את הערך של ההמרה ולהשתמש בו אח"כ – נשתמש במילת המפתח as.
is יחזיר ערך חיובי אם האובייקט יורש/הוא מהType שניתן, as יחזיר את האובייקט מומר לType שניתן אם הוא יורש ממנו / הוא מהType שניתן – ואם לא, הוא יחזיר את הערך null.
דוגמה לשימוש בis, בדיקה שאובייקט יורש מIDisposable :
|
|
דוגמה לשימוש בas, קריאה לDispose של אוסף אובייקטים שחלקם יורשים וחלקם לא מIDisposable :
|
|
שימו לב כי כתיבת השורה
|
|
שקולה לכתיבת השורות הבאות:
|
|
ולכן לא ניתן להשתמש באופרטור as בשביל ValueTypes (כגון int, DateTime וכו’)
ראו גם טיפים 326-328 להבדלים בין is וas.