مفهوم implicite و explicite
در سی شارپ دو مفهوم به نام implicite و explicite وجود دارد. فرض کنید لیوان آبی را می خواهیم در پارچ خالی بریزیم مسلما هیچ مشکلی به وجود نمی آید.
مثل این که بخواهیم یک متغیر int را به double تبدیل کنیم. به این کار implicite میگوییم.
int x;
double y;
y = x;//ok
حال فرض کنید میخواهیم یک پارچ آب را درون یک لیوان خالی بریزیم. مسلما بخشی از آب از بین می رود. مثل این که بخواهیم یک متغیر double را به int تبدیل کنیم. به این کار explicite می گوییم.
int x;
double y;
x = y; //error
در این جا خطا پیش می آید مبنی بر این که شما نمی توانید یک دابل را به اینت تبدیل کنید چون دابل اندازه بزرگتری دارد و مقداری از دابل از بین می رود. مگر این که شما رسما اعلام کنید که مسئولیت این کار را بر عهده میگیرید. کد بالا را به صورت پایین تغییر دهید.
int x;
double y;
x = (int) y;