هنگام
تبدیل داده ها از نوع کوچکتر به نوع بزرگتر ، برای نوع بزرگتر بسیار آسان است که
بیتهای نوع کوچکتر را در بر گیرد ، و بقیه بیت های خالی را با صفر و یک پر کند
.اما برخی مواقع ممکن است تبدیل داده ها از نوعی به نوع دیگر راحت نباشد و یا
کوچکتر باشد که شاید باعث از بین رفتن برخی داده ها می شود .اینجاست که ما باید از
تبدیل صریح استفاده کنیم ، یعنی به برنامه توضیح دهیم که این تبدیل چگونه انجام
شود ،برخلاف حالت قبلی که تبدیل اتوماتیک بود .
به شکل زیر دقت کنید که چگونه یک متغیر از نوع ushort
به
متغیری از نوع byte تبدیل می شود . مثلا اگر متغیر ما عدد 1365 از نوع
ushort باشد
پس از تبدیل به نوع byte بدلیل از دست دادن برخی بیتها به عدد 85 تغییر
می کند .
Casting
همانطور که در تبدیل صریح گفتیم برای تغییر نوع یک متغیر باید به صراحت آن را
ذکر کرد ، ما در این گونه تبدیل با علم به تغییرات انجام شده تبدیل مورد نظر را
بصورتی که می خواهیم اعمال می کنیم . به تعبیری دیگر تبدیل با مسولیت ما انجام می
شود حتی اگر باعث تغییر داده ها شود . برای اینکار باید از عبارت cast یا همان
cast
expression استفاده کنیم .فرمت کلی آن به شکل زیر است .
Target type بجای این عبارت و بین پرانتز شما باید نوع هدف
را مشخص کنید ، یعنی داده شما به چه نوعی تغییر کند
source
expression, همان متغیر شما است که دارای مقدار
است و می خواهید آن را به نوع داده دیگری تغییر دهید .
پس وقتی شما از عبارت و فرمت بالا استفاده می کنید به صراحت اعلام می کنید که
می خواهید داده های خود را (بر حسب نیاز خود حتی در صورت تغییر ) به نوع دیگری
تبدیل کنید
شکل زیر نشان می دهد که چگونه یک متغیر ushort به متغیری از نوع byte تبدیل شده است ، اگر دقت کنید می بینید که در
حالت اول عدد 10 در هر دو نوع گنجایش دارد لذا بدون تغییر ، به نوع دیگریی منتقل
شده اما در حالت دوم عدد 1365 که گنجایش بزرگتری دارد لذا پس از تبدیل مقداری از
بیتها حذف می شود و عدد 85 حاصل می شود .
|