我有这个基于下拉列表的简单代码,如果选择了Factorial,则键入一个数字并提交并获得相同的权力。 我有
double x;
double y;
double result;
double m;
int answer = 1;
private void factorial(int num)
{
for(int x = 1; x <= num; x++)
{
answer = answer * x;
}
}
private void pow(double x, double y)
{
m = Math.Pow(x, y);
result = m;
}
和设计
if(comboBox1.SelectedIndex == 0)
{
int fact;
fact = int.Parse(textBox1.Text);
factorial(fact);
textBox2.Text = answer.ToString();
}
if(comboBox1.SelectedIndex == 1)
{
x = double.Parse(textBox1.Text);
y = double.Parse(textBox3.Text);
pow(x, y);
textBox2.Text = Convert.ToString(result);
}
所以,现在我想把pow()和factorial()放到一个函数中并做同样的事情
答案 0 :(得分:0)
有点乱,但它应该做的工作:
if(comboBox1.SelectedIndex == 0)
{
int fact;
fact = int.Parse(textBox1.Text);
factorialPow(fact, 0, 0, 0);
textBox2.Text = answer.ToString();
}
if(comboBox1.SelectedIndex == 1)
{
x = double.Parse(textBox1.Text);
y = double.Parse(textBox3.Text);
factorialPow(0, x, y, 1);
textBox2.Text = Convert.ToString(result);
}
和
private void factorialPow(int num, double x, double y, int selectedIndex)
{
switch (selectedIndex)
{
case 0:
for (int i = 1; i <= num; i++)
{
answer = answer * i;
}
break;
case 1:
m = Math.Pow(x, y);
result = m;
break;
}
}
免责声明:我绝不宽恕这种编码,有很多很多方法可以用更清洁,更有效的方法来做到这一点,但就像我说它会做的那样。
修改强>
我也相信你发布的内容绝对没问题,你可以在你的函数之间添加这个额外的方法,如下所示:
private void factorialOrPow(int num, double x, double y, int selectedIndex)
{
switch (selectedIndex)
{
case 0:
factorial(num);
break;
case 1:
pow(x, y);
break;
}
}