PDA

مشاهده نسخه کامل : کی از checked باید استفاده کرد؟



iranch
20-06-16, 17:01
با درود
دوستان من خودنم و مثال هم دیدم که مثلا اگر جمع دو عدد از اون حد متغیر زد بالا، این checked یک استثنا پرت میکنه
خوب کاربردش کجاست؟ مطمئنن ما برای جمع دو عدد مثلا int16 باشه ، متغیر int32 در نظر میگیریم.
چه کاری هست که متغیر کمتر در نظر بگیریم بعد تمهیداتی ببنینیم که از حد فراتر رفت ، استثنا بده؟
ممنون

ravegoat
30-06-16, 09:27
با سلام!

نکته ی اول اینه که در خیلی از نرم افزار ها از جمله بازی ها، انتخاب نوع متغیر ها اهمیت داره. فرضا در یک بازی برای الگوریتم تشخیص برخورد شاید هزاران متغیر عددی استفاده بشه که در این مقیاس int16 با int32 تفاوت چند صد مگابایتی رو در فضای رم سبب میشن. در این شرایط اگر بشه نتیجه ی دو مقدار صحیح 16 بیتی رو داخل یک متغیر صحیح 16 بیتی ریخت آیا باز شما ترجیح میدید از int32 استفاده کنید؟!

و اما اصل قضیه متفاوته: در یک کاربرد عملی در طراحی موتور های دینامیکی حل دینامیک اجسام صلب ممکنه ناپایدار بشه. در نگاه جزئی تر امکان داره زوایای اویلر برای یک جسم مقدار بی نهایت پیدا کنن که در این صورت جسم دوران های غیرعادی خواهد داشت. اگر شما حین روند حل از متغیر های unchecked استفاده کرده باشید، از کجا متوجه خواهید شد که کدام روند حل تون ناپایدار شده؟

در جمع بندی باید عرض کنم که گاهی اوقات برای رهگیری روند مقدار دهی و مقدار گیری در الگوریتم های محاسباتی وجود چنین قابلیت هایی ضروریه اما در کل به دلیل بهبود عملکرد اجرای کد متغیر ها به طور پیش فرض unchecked خواهند بود مگر آن که شما آن ها را به شکل checked تعریف کنید.