برای توسعه پروژه ها معمولا نیاز میشود انواع داده ها را به یکدیگر تبدیل کنیم و یک نوع از داده یا Object را به نوع دیگری از داده یا Object تبدیل کنیم. این مقاله دو روش Implicit و Explicit را برای تبدیل Object ها به یکدیگر بررسی میکند.
فرض کنید دو کلاس با نام های Book و NoteBook به صورت زیر داریم.
#1 کلاس Book
#2 کلاس NoteBook
دو کلاس فوق هیچ شباهتی با یکدیگر ندارند و نمیتوانیم این دو نوع را به یکدیگر تبدیل کنیم و اگر بخواهیم به صورت زیر آنها را به یکدیگر تبدیل کنیم، باعث ایجاد خطای کامپایلری می شویم.
برای حل این مشکل و فراهم شدن امکان تبدیل این دو نوع از Object میتونیم از دو روش Implicit Casting و Explicit Casting استفاده کنیم.
# Explicit Casting
در روش Explicit یک Operator به صورت Explicit تعریف میکنیم .ورودی آن را از نوع خود کلاس book و سپس خروجی آن را از نوع خروجی مورد نیاز تعریف میکنیم. Converter مورد نظر را در بدنه این Operator مینویسیم. در صورت رعایت این موارد میتوانیم دستور نوشته شده را کامپایل کنیم.
در روش Explicit حتما باید به طور صریح عملیات Cast را انجام دهید . در غیر این صورت با پیام خطا روبرو خواهید شد.
در صورتی که بخواهیم این موارد را نادیده بگیریم می توانیم از روش Implicit برای انجام این کار استفاده کنیم.
# Implicit Casting
تفاوت رورش Implicit و Explicit، صرفا در نوع تعریف operator است.
بعد از تعریف operator به روش Implicit استفاده از Converter به صورت زیر خواهد بود.
در این روش برای Converter کردن، نیاز به ذکر نوع Object نداریم و Object مد نظر نوع داده خروجی کلاس تبدیل خواهد شد.