مثال
در کد زیر، بررسی میکنیم که آیا متغیری از نوع int، با نوع object سازگار است یا خیر!
int i = 10; if (i is object) { // یه کاری رو انجام بده }
طبیعتا سازگار است! چون تمامی نوعها از object به ارث رسیدهاند؛ پس همهی متغیرها با object سازگار خواهند بود و جواب شرط بالا، true خواهد شد.
یک مثال در دنیای واقعی
کلاسهای Animal و Cat و Dog را فرض کنید که Cat و Dog از Animal مشتق شده باشند (به ارث رسیده باشند). حالا برفرض یک آبجکتی از جنس Cat و به نام tom داریم. آیا میتوانیم بگوییم tom است (is) یک نوعی از Cat؟ (یعنی: تام یک گربه هست؟!). بله تام یک گربه است! و در ادامه بگوییم آیا tom یک Animal است؟! (یعنی: تام یک حیوان است؟!). بله میتوانیم بگوییم. چرا که هرگربهای از نوع کلاس گربه بوده و در عین حال، از نوع کلاس جیوان نیز خواهد بود.
ولی الزاما هر حیوانی یک گربه نیست! و نمیتوانیم برفرض بگوییم آبجکتی با نام jerry تعریف شده است و یک گربه است!
مثال کاربری
از is در خیلی از موارد مختلفی استفاده میکنیم. برای مثال، ممکن است بخواهیم کدی را برای تمامی TextBox های رو فرم اعمال کنیم:
foreach (Control c in this.Controls) { if (c is TextBox) { TextBox t = (TextBox)c; } }
پس داخل حلقهای که برای تمامی کنترلها نوشته شده است، بررسی میکنیم که اگر آن کنترل از نوع TextBox بود، عملیاتی را انجام دهد.
آقا عالی