ٍطزثحفهخد:An unhandled exception of type 'System.StackOverflowException' occurred in System.Data.dll
سلام.
من یه کلاسی دارم که تقریبا تو همه فرمها و کلاسهای دیگه از اون استفاده کردم.
به تازگی وقتی میخوام یکی از فرمهامواجرا کنم تو یکی از خطهای اون کلاس که دیتاتیبل رو new کردم Exception زیر رخ میده:
An unhandled exception of type 'System.StackOverflowException' occurred in System.Data.dll
مشکل کجاست؟ ممنون میشم سریعتر راهنماییم کنید.
متشکرم.
نقل قول: ٍطزثحفهخد:An unhandled exception of type 'System.StackOverflowException' occurred in System
با سلام
من هم همین مشکل رو دارم
نمیدونم اشکالم از کجاست
ممنون میشم کمکم کنید
public int integerpower(int num1, int num2)
{
if (num1 == 0)
return 1;
else
{
return integerpower(num1, num2 - 1) * num1;
}
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "";
int Base = Convert.ToInt32(textBox1.Text);
int exponent = Convert.ToInt32(textBox2.Text);
int javab = integerpower(Base, exponent);
label1.Text = Convert.ToString(javab);
}
نقل قول: ٍطزثحفهخد:An unhandled exception of type 'System.StackOverflowException' occurred in System
نقل قول:
نوشته شده توسط
moongairl
با سلام
من هم همین مشکل رو دارم
نمیدونم اشکالم از کجاست
ممنون میشم کمکم کنید
public int integerpower(int num1, int num2)
{
if (num1 == 0)
return 1;
else
{
return integerpower(num1, num2 - 1) * num1;
}
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "";
int Base = Convert.ToInt32(textBox1.Text);
int exponent = Convert.ToInt32(textBox2.Text);
int javab = integerpower(Base, exponent);
label1.Text = Convert.ToString(javab);
}
ممنون از اینکه اول جستجو کردید بعد سوال خودتون رو مطرح کردین!
این خطا نشون دهنده یک حلقه بی پایان هست در کد بنابراین اگر دقت کنید متد recursive ای که نوشتید هیچگاه شرط خاتمه ای که در ابتدا چک می کنید اجرا نخواهد شد! در داخل متد integerpower شما مقدار num1 رو چک میکنید که اگر مساوی 0 بوذد تمام و در غیر این صورت دوباره با همان مقدار num1 اون رو صدا می زنید بنابراین هیچ وقت این مقدار صفر نخواهد شد و درنتیجه این متد پایانی ندارند
اینطور که از نام متد مشخصه محاسبه توان هست بنابراین جای num1 در شرط از num2استفاده کنید چون توان درحال کم شدن هست