ورود

View Full Version : معادل دستور ()Val در #C



bardia goharbin
جمعه 27 بهمن 1385, 20:49 عصر
معادل دستور ()Val در #C چیست؟

من QueryString را میخوانم و قصد دارم وقتی فقط عدد بود دستوراتی اجرا شود. نحوه تبدیل String به عدد در #C چیست؟

Alireza_Salehi
جمعه 27 بهمن 1385, 20:58 عصر
هرنوع عددی در دات نت متدی به نام Parse داره که یک رشته میگیره و معادل عددی اون نوع رو برمیگردونه!

Int32.Parse("1235")

اگر هم قابل تبدیل نباشه Exception ایجاد میکنه !

bardia goharbin
جمعه 27 بهمن 1385, 21:00 عصر
دقیقا توی همین مورد Exception ایجاد میکنه. منظور شما اینه که چک کنم اگر Exception تولید کرد یعنی عدد نیست؟

bardia goharbin
جمعه 27 بهمن 1385, 21:10 عصر
کدوم ۱۰ کاراکتر منظورته؟
سئوال اصلی من این بود اگر یک رشته شامل "123f" بود طریقه اینکه بفهمیم این رشته خالص عدد است یا خیر چیست؟ و آیا غیر از راه حلی که ارائه کردید راه حل دیگری نیز وجود دارد؟

Alireza_Salehi
جمعه 27 بهمن 1385, 21:22 عصر
Int32 i=0;
String s = "125";
try
{
i = Int32.Parse(s);
}
catch (FormatException ex)
{
Response.Write("خطا");
}
Response.Write("موفقیت");


اون 10 تا رو بیخیال زیاد بهش فکر نکن!

Behrouz_Rad
جمعه 27 بهمن 1385, 22:47 عصر
کد فوق به هیچ وجه صحیح نیست!
در برنامه هایی که می نویسی باید سعی بشه تا حد ممکن از ایجاد استثنای عمدی جلوگیری کنی.
راه های بهتری هم وجود داره.
از جمله استفاده از متد TryParse کلاس Int32 که Exception تولید نمی کنه!

موفق باشید.

Alireza_Salehi
شنبه 28 بهمن 1385, 09:43 صبح
با تشکر از آقای راد :

Int32 i;
if (Int32.TryParse("123",out i))
{
//موفقیت تبدیل
}
else
{
//خطای تبدیل
}