tgoop.com/fullStackDevs/737
Last Update:
🔹توی این پست قراره یه بررسی بیسیک و مفید در مورد دات نت و سی شارپ داشته باشیم.
🔰Convert Class
▫️متد های استاتیک این کلاس برای تبدیل Base Data Type ها در .Net استفاده میشن، و بسته به مقدار Base Data Type و تایپی که قراره به اون تبدیل بشن، در runtime ممکنه مواردی رخ بده.
یکی از اون موارد Overflow Exception هست. وقتی دو مقدار از دوتا تایپ که به هم قابل تبدیل شدن هستند رو Convert می کنید، اگر در این حین امکان از بین رفتن دیتا وجود داشته باشه با Overflow Exception مواجه میشید، پس حتما این Exception رو هندل کنید.
🔰Decimal Data Type in .Net
▫️اگه ازتون بپرسن که آیا decimal یک Primitive تایپه چی پاسخ میدین؟
نوع داده ای دسیمال یک تایپه بسیار خاصه، زبان هایی مثل C# و VB اون رو به عنوان Primitive Type در نظر میگیرن اما برای CLR اینطور نیست.
یعنی CLR برای manipulate کردن مقادیر از این نوع داده، دستور IL خاصی نداره، اگه سری به سورس کد این دیتا تایپ در .Net Framework SDK بزنین، می بینید که توی decimal.cs برای عملیات های Add , Subtract , Multiply , Divide متد های استاتیکی با همین نام وجود داره و operator های + , – , × , / و... هم oveload شدن.
▫️وقتی توی کدتون از مقادیری با نوع دسیمال استفاده میکنید، کامپایلر برای manipulate کردن این مقادیر باید IL تولید کنه و معادل دستور IL خاصی وجود نداره و این به این معنیه که manipulate کردن مقادیر از نوع دسیمال کندتر از Primitive Type هاییه که توسط CLR شناخته میشن.
▫️همچنین چون دستور IL خاصی برای manipulate کردن داده های از نوع دسیمال وجود نداره، درنتیجه operator, statement های checked و unchecked هم تاثیری برای نوع داده های دسیمالی نداره و انجام هر نوع عملیاتی بروی داده هایی از نوع دسیمال که باعث از بین رفتن دیتا بشه (unsafe باشه)، باعث Overflow Exception میشه.
@fullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/737