ايران ويج

نسخه‌ی کامل: اشکال کد زیر در چیست؟؟؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
کد زیر میخواهد x را به توان y برساند از طریق تابع بازگشتی اشکال کار در کجاست من نمیتونم جواب آخره بدست بیارم یعنی میوته تو loop 
میدونم راهای بهتری برای بدست اوردن توان است ولی این کارو برای مفهوم بیشتره تابع بازگشتی میخواهم یاد بگیرم اگه میشه کمک کنید

کد:
private void bnt_MP_Click(object sender, EventArgs e)
       {
           int x;
           int y;
           int z;
           x = Int32.Parse(txtX.Text);
           y = Int32.Parse(txtY.Text );
           z=MP(x,y);
           txt_ans.Text = z.ToString();
         
       }
       private int   MP(int x,int y)
       {
           if (y == 1 && x > 0)
               return x;
           return MP(x, y) * MP(x, y - 1);
       }
کد:
private void bnt_MP_Click(object sender, EventArgs e)
       {
           int x;
           int y;
           int z;
           x = Int32.Parse(txtX.Text);
           y = Int32.Parse(txtY.Text );
           z=power(x,y);
           txt_ans.Text = z.ToString();
         
       }
     public int power(int x, int y)
       {

           if (y > 1)
           {
               return (x * power(x, y - 1));
           }
           else
           {
               return x;
           }

       }
مرسی از لطفتون 
من تازه کارم دارم کم کم شروع میکنم 
بازم تشکر