PDA

View Full Version : مبتدی: خطا در اجرای برنامه ( سی شارپ)



mohammad2407
یک شنبه 06 فروردین 1391, 02:39 صبح
سلام دوستان من یک برنامه با سی شارپ نوشتم که دو عدد رو از ورودی خونده ، مجموع و حاصل ضرب ان ها رو محاسبه میکنه

ولی موقع اجرا از Tolnt32 ایراد میگیره

من کل کد های فرم هم قرار دادم

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication14
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Enter a";
label2.Text = "Enter b";
label3.Text = "Enter Password";
label4.ResetText();
label1.AutoSize = true;
label2.AutoSize = true;
label3.AutoSize = true;
label4.AutoSize = true;
textBox3.PasswordChar = '*';

}

private void button1_Click(object sender, EventArgs e)
{
int a = Convert.Tolnt32(textBox1.Text);
int b = Convert.Tolnt32(textBox2.Text);
int c = a + b;
label4.Text = a.ToString() + " + " + b.ToString() + "=" + c.ToString();
}

private void button2_Click(object sender, EventArgs e)
{
int a = Convert.Tolnt32(textBox1.Text);
int b = Convert.Tolnt32(textBox2.Text);
int c = a * b;
label4.Text = a.ToString() + " * " + b.ToString() + "=" + c.ToString();

}

private void button3_Click(object sender, EventArgs e)
{
Close();
}

private void textBox3_TextChanged(object sender, EventArgs e)
{
Form1.ActiveForm.Text = textBox3.Text;

}
}
}

rezarko
یک شنبه 06 فروردین 1391, 04:13 صبح
خوب میتونی به جای int a = Convert.Tolnt32(textBox1.Text); بنویسی int a=int.Parse(textbox1.text);

asadegha
یک شنبه 06 فروردین 1391, 04:24 صبح
حواست باشه قبل از تبدیل کردن رشته به نوع عددی بررسی کنی که تکست باکست عدد داخلش باشه. یعنی با try و catch خطای احتمالی رو کنترل کنی.

mohammad2407
یک شنبه 06 فروردین 1391, 11:34 صبح
خوب میتونی به جای int a = Convert.Tolnt32(textBox1.Text); بنویسی int a=int.Parse(textbox1.text);

دستت درد نکنه درست شد حالا میشه بگی فرق کد شما با کد من ( Tolnt32) در چی هست ؟ و چرا برای من Tolnt32 اجرا نمیشه
:خجالت:

mohammad2407
یک شنبه 06 فروردین 1391, 12:39 عصر
الان باز هم با Tolnt32 مشکل دارم

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

ولی از Tolnt32 ایراد میگیره | کد دوستمون هم قرار دادم ولی باز درست نشد

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication15
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Number";
label2.Text = "";
label2.AutoSize = true;
}

private void button1_Click(object sender, EventArgs e)
{
int num = Convert.tolnt32(textBox1.Text, 10);
label2.Text = (num % 2==0)?"number is even is odd";

}

private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}

Hybrid
یک شنبه 06 فروردین 1391, 13:26 عصر
سلام ،

خوب کدت اشکال داره عزیز ، همون خطی که خطا داده و علامت سوال گذاشتین کاملا اشتباهه ،


label2.Text = (num % 2==0)?"number is even is odd";

داخل یک دستور if بنویسین دستورتون تا چک کنه زوجه یا فرد

موفق باشید.و/

mohammad2407
یک شنبه 06 فروردین 1391, 13:32 عصر
اصلا خطا از خط زیر نیست

label2.Text = (num % 2==0)?"number is even is odd";

بلکه خطا از خط زیر هست

int num = Convert.tolnt32(textBox1.Text, 10);

و واژه ( کلمه ) tolnt32

Hybrid
یک شنبه 06 فروردین 1391, 13:40 عصر
سلام دوباره ،

عجیبه که از اون خط خطا میگیره حروف کوچیک و بزر رو داخل toint رعایت کردی ؟؟ کد زیر رو امتحان کن ببین درست میشه


int num = Convert.ToInt32(textBox1.Text, 10);
if (num % 2 ==0 )
{
label1.Text = "زوج";
}

else
{

label1.Text="فرد";
}

mohammad2407
یک شنبه 06 فروردین 1391, 14:38 عصر
ToInt نیست tolnt هست من میخوام از شرط استفاده نکنم

یعنی نیازی نیست از شرط استفاده کنم

خیلی ساده با دستور من کار انجام میشه ولی تعجب میکنم که چرا خطا میده

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

mohammad2407
یک شنبه 06 فروردین 1391, 14:45 عصر
مشکل حل شد مرسی از همه دوستان به ویژه از vbBoss (http://barnamenevis.org/member.php?230007-vbBoss)

asadegha
دوشنبه 07 فروردین 1391, 01:31 صبح
برای دوستانی که در آینده میان سر میزنن میگم. جناب mohammad2407 که مشکلش حل شد نگفت چی بود مشکلش. من میگم.

1-ToInt32 حروف بزرگ و کوچک رعایت نشده بود.
2-دستور ? به صورت زیر انجام میشه:
;دستورات غلط:دستورات درست?شرط
معادل:
if(شرط)
دستورات درست
else
دستورات غلط
یعنی این درسته:
label2.Text = (num % 2==0)?"number is even is even":"number is even is odd";