PDA

View Full Version : تبدیل نوع ها و تفاورت بین convert , pars



c_doost
جمعه 05 آبان 1391, 22:21 عصر
سلام

در سی شارپ برای تبدیل مقادیر رشته عددی به نوع اینتیجر هم از این دستور استفاده میشه :


Convert.ToInt16(txt_num1.Text )

هم به این شکل :


int.Parse(txt_num1.Text);

کدومش بهتره؟
تفاوت این دستور در چیه؟

ایمان مدائنی
جمعه 05 آبان 1391, 22:32 عصر
دوست عزیز try.parse در واقع int در نظر میگیره یعنی بازه اعداد آن 9 رقم است و بیشتر را نمیتواند تبدیل کند

ولی convert.toint32 بازه اعدادش بیشتر است اگر اشتباه نکنم بازه 12 عدد میباشد

در مواقعی که از مقدار دریافتی اطلاعات کاملی ندارید از convert.toint32 استفاده میشود

c_doost
یک شنبه 07 آبان 1391, 21:30 عصر
convert.toint32 کسی اطلاع داره دقیقا چند عدد را تبدیل میکنه؟ (آقای مدائنی گفتن اگر اشتباه نکنم) برای مقادیر اعشاری کاربرد این دو دستور چیه؟

ایمان مدائنی
سه شنبه 16 آبان 1391, 10:12 صبح
convert.toint32 اعداد اعشاری قبول نمیکند
برای اعداد اعشاری از decimal و dublle استفاده میشود
کلا int برای اعداد صحیح میباشد

mehdi.mousavi
سه شنبه 16 آبان 1391, 10:32 صبح
سلام.
متود اول، یعنی Convert.ToInt16 بدین شکل پیاده سازی شده:

public static short ToInt16(String value)
{
if (value == null)
return 0;
return Int16.Parse(value, CultureInfo.CurrentCulture);
}


متود دوم، int.Parse چی؟ int بر اساس C#‎ ECMA Standard (http://www.ecma-international.org/publications/standards/Ecma-334.htm) صراحتا ذکر شده که معادل Int32 هستش و در سیستم های 64 بیتی به Int64 مپ نخواهد شد. بنابراین، int.Parse معادل Int32.Parse خواهد بود. بنابراین با یه مقایسه ساده، مشخص میشه که ToIn32 داره Int32.Parse رو فراخوانی میکنه، البته بعد از اینکه ورودی رو برای null بودن چک کرد... در نهایت تفاوت Int16 و Int32 هم که مشخصه...

موفق باشید.

c_doost
سه شنبه 16 آبان 1391, 18:21 عصر
سلام.
متود اول، یعنی Convert.ToInt16 بدین شکل پیاده سازی شده:

public static short ToInt16(String value)
{
if (value == null)
return 0;
return Int16.Parse(value, CultureInfo.CurrentCulture);
}


متود دوم، int.Parse چی؟ int بر اساس C#‎ ECMA Standard (http://www.ecma-international.org/publications/standards/Ecma-334.htm) صراحتا ذکر شده که معادل Int32 هستش و در سیستم های 64 بیتی به Int64 مپ نخواهد شد. بنابراین، int.Parse معادل Int32.Parse خواهد بود. بنابراین با یه مقایسه ساده، مشخص میشه که ToIn32 داره Int32.Parse رو فراخوانی میکنه، البته بعد از اینکه ورودی رو برای null بودن چک کرد... در نهایت تفاوت Int16 و Int32 هم که مشخصه...

موفق باشید.
دوست عزیز تشکر از جوابت ولی زیر دیپلم بگید تا من بفهمم چون از حرف های شما چیزی دستگیرم نشده

بازم از لطفا شما ممنونم