عملگر as

از عملگر as برای تبدیل یک کلاس به کلاس دیگر که در سلسله مراتب وراثتی یکسانی هستند، استفاده می‌شود. این عملگر کاری معادل تبدیل صریح انجام می‌دهد و فقط دارای تفاوتی جزئی هستند که در ادامه توضیح می‌دهیم. نحوه استفاده از این عملگر به صورت زیر است :

myObject as DestinationType;

عملگر سمت چپ، شیی است که قرار است تبدیل شود و عملگر سمت راست نوع مقصد است، که قرار است شیء به آن تبدیل شود. کدهای زیر با هم برابر هستند :

Destination someObject = (Destination)myObject;
Destination someObject = myObject as Destination;

در کد اول از عمل cast (تبدیل صریح) استفاده شده است و اگر تبدیل دو کلاس با شکست مواجه شود باعث به وجود آمدن استثناء می‌شود. در کد دوم از عملگر as استفاده شده است و اگر تبدیل با شکست مواجه شود مقدار تهی (null) را بر می‌گرداند. شما می‌توانید به وسیله این عملگر یک متد از کلاس مشتق را از طریق کلاس پایه فراخوانی کنید. به مبحث کلاس‌ها در درس قبل مراجعه نمایید.

(Animal as Dog).Run();