امیری کد نت در نت اینترنت این وبلاگ بصورت اتوماتیک مطالب وبلاگ های دیگر رو ثبت میکنه تا دسترسی شما به آنها راحت باشد
با سلام
تا جالا خیلی برای همه برنامه نویس ها پیش آمده است که بخواهند مقادیر از یک نوع داده را داخل نوع دیگری از داده بریزند و استفاده کنند
در C# هم این کار را به راختی می توان انجام داد و دو نوع تبدیل داریم
1- Implicit به صورت نهان 2- Explicit به صورت آشکار
در تبدیل نوع Implicit یا نهان مثل ریختن آب یک لیوان داخل پارچ آب می باشد که به راختی انجام می شود مانند تبدیل int به Long
int x = int.MaxValue;
long y;
y = x;
این تبدیل هیچ ایرادی ندارد و به دلیل گنجایش بیشتر نوع داده Long به راحتی انجام می شود
اما در تبدیل نوع Explicit یا آشکار مثل ریختن آب پارج داخل یک لیوان است که دو حالت پیش می آید اولی حالت این است که آب پارج به اندازه لیوان باشد و هیچ سر ریزی اتفاق نمی افتد و اما حالت دوم اگر پارچ پر باشد حتما سر ریزی اتفاق می افتد و این یک افتذاح بزرگ برنامه نویسی می باشد
در هیچ زبانی بابت این اتفاق به برنامه نویس هشدار داده نمی شود اما در C# این رویداد به برنامه نویس هشدار داده می شود .
long x = long.MaxValue;
int y ;
y = x;
این کد به هیچ وجه در سی شارپ اجرا نخواهد شد و از برنامه نویس می خواهد که یک casting آشکار انجام دهد در واقع برنامه نویس با casting آشکار به کامپایلر می گوید که من می دانم چیکار می کنم فقط تبدیل را انجام بده . مثل کد زیر :
long x = long.MaxValue;
int y ;
y = ( int ) x;
با این کد 100 در 100 Overflow اتفاق می افتد ولی هیچ خطایی دیده نمی شود و یک افتذاح بزرگ رخ داده است .
اما در .net برای این مشکل هم چاره ای اندیشیده شده است مثال زیر :
در این مثال از استثنا ها استفاده شده است
موفق باشید
برچسب:
نویسنده: کل مردم