144. IsInstanceOfType

לפעמים אנחנו מעוניינים לבדוק האם טיפוס מסוים הוא instance של Type מסוים.

הדרך הראשונה שעולה לראש היא להשוות את GetType של הinstance עם הType הנתון.

זה, כמובן, לא יעבוד כאשר הטיפוסים לא שווים (ראו גם טיפ מספר 137)

דרך שנייה היא לתקן את הדרך הראשונה: נשתמש במקום בהשוואה רגילה, בIsAssignableFrom:

1
2
3
4
5
6
7
Type type;
object instance;
if (type.IsAssignableFrom(instance.GetType()))
{
// Like (instance is type)
}

זו דרך שתעבוד ברוב המקרים, אבל לא תעבוד אם instance הוא null. (נקבל NullReferenceException)

אפשר כמובן לתקן את התנאי ולבדוק אם הinstance הוא null.

אבל במקום זאת, יש פונקציה שעושה את זה בשבילנו:

1
2
3
4
if (type.IsInstanceOfType(instance))
{
// Like (instance is type)
}

המשך יום טיפוסי

שתף