در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

پیدا کردن محدوده Type های عددی در سی شارپ و سرریز عدد در Casting

حتماً تا حالا همیشه حفظ کردید محدوده یک تایپ مثل int رو در این آموزش میخوام بهتون بگم چطور میشه فهمید محدوده مقدار Value Type در زبان C#

int x=0;
int y=0;
x=int.MaxValue;
y=int.MinValue;

Console.WriteLine(x);
Console.WriteLine(y);


همانطور که ملاحظه میفرمایید در متغیر X بیشترین مقداری که در تایپ int جا میگیرد ذخیره میگردد و در y هم کمترین عددی که در این تایپ جا میشود ذخیره میگردد.چون تایپ int در سی شارپ 32 بیتی هست .پس عدد بزرگتری نسبت به int های زبان های نسل قدیم خود میتواند در ان قرار گیرد.با اجرای کد های بالا در متغیر x عدد 2147483647 و در متغیر y عدد -2147483648 قرار میگیرد.همانطور که برای تایپ int این کار عملی شد ، میتوان برای تایپ های دیگر نیز از این دستور استفاده نمود جهت به دست آوردن بازه اعداد


byte x,y;
x=byte.MaxValue;
y=byte.MinValue;

Console.WriteLine(x);
Console.WriteLine(y);
در کد های بالا در متغیر x عدد 255 و در متغیر y عدد 0 قرار میگیرد.


int x=256;
byte y=0;

if (x > byte.MaxValue || x < byte.MinValue)
    Console.WriteLine("Overflow!");
else
    y = (byte)x;
البته راه کد نویسی دیگه ای هم داره که پیشنهاد میشه از راه دستور Checked استفاده بشه.

int x=256;
byte y=0;            
            try
            {
                checked
                {
                    y=(byte)x;
                }
            }
            catch (OverflowException ex)
            {
                MessageBox.Show(ex.Message);
            }

 
البته دستور بالا رو میتونید بدون استفاده از try هم انجام بدید به شکل زیر اما اگه با try باشه کد شما شکیل تر خواهد بود

int x=256;
byte y=0;            
          
                checked
                {
                    y=(byte)x;
                }
            }
         

همانطور که میدونید int مثل یک پارچ میمونه و byte مثل یک لیوان دستور checked میاد چک میکنه اگه مقدار X رو بریزی تو y آیا داده شما کاملاً و بدون خطا وارد متغیر مقصد خواهد شد یا خیر



نویسنده : فرهاد خانلری
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
#خطای_سرریز_در_سی_شارپ #دستورات_کد_نویسی_سی_شارپ
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....