我如何将空白转移到文本框?c#

本文关键字:文本 转移 空白 | 更新日期: 2023-09-27 18:02:51

我想在文本框中显示答案,请帮助我急需

的例子:

    public void compute1(double n1, double n2, string opr)
    {
        if (opr == "-")
        {
            ans = (n1 - n2);
        }
    }
    private void cmbOperator_SelectedIndexChanged(object sender, EventArgs e)
    {
        double var1 = Convert.ToDouble(txtFirstOperand.Text);
        double var2 = Convert.ToDouble(txtSecondOperand.Text);
        if (cmbOperator.Text == "+" || cmbOperator.Text == "-")
        {
            txtResult.Text = compute1(var1, var2, opr1); //Heres the Error i want to show the answer in the box
        }
    }

我如何将空白转移到文本框?c#

public double compute1(double n1, double n2, string opr)
{
    if (opr == "-")
    {
        return n1 - n2;
    }
    return null
}
可用性:

     if (cmbOperator.Text == "+" || cmbOperator.Text == "-")
     {
        txtResult.Text = (compute1(var1, var2, opr1)).ToString(); 
     }

变化:

在你的compute1方法中,我们将typevoid改为double。这意味着无论何时你调用该方法并传递必要的参数,即compute1(1.22, 4.22, -);,它将return计算出的数字作为double类型,然后我们使用Convert.ToString()将其转换为String类型,以便它是文本框的正确type

如果操作符不匹配,该方法将返回null

如果您想要分配在方法中计算的内容,则该方法需要返回类型。它不应该是无效的。

public string compute1(double n1, double n2, string opr)
{
   var ans = "";
   if (opr == "-")
   {
      ans = (n1 - n2).ToString();
   }
   return ans; 
}
private void cmbOperator_SelectedIndexChanged(object sender, EventArgs e)
{
   double var1 = Convert.ToDouble(txtFirstOperand.Text);
   double var2 = Convert.ToDouble(txtSecondOperand.Text);
   if (cmbOperator.Text == "+" || cmbOperator.Text == "-")
   {
      txtResult.Text = compute1(var1, var2, opr1); //Heres the Error i want to show the answer in the box
   }
}

要将其分配给文本框的文本值,我建议您将其作为字符串返回。如果您愿意,也可以将其作为双精度返回,在这种情况下,从上面的代码中删除ToString()并将返回值设置为双精度。

首先让你的函数实际返回一个结果:

public double compute1(double n1, double n2, string opr)
{
    if (opr == "-")
    {
         return (n1 - n2);
    }
    return 0.0; // or throw an exception?  some other behavior?
}

那么你可以使用返回值:

txtResult.Text = compute1(var1, var2, opr1).ToString();

将您的方法返回类型更改为double?(可空双精度)并返回您计算的值。我还添加了一个返回null作为回退,如果你的if条件返回false

public double? compute1(double n1, double n2, string opr)
{
   if (opr == "-")
   {
      return (n1 - n2);
   }
   else if (opr == "+")
   {
      return (n1 + n2);
   }
   return null;  // fallback
}

现在,当你调用这个方法时,在检查它是否为空之后,将这个方法调用的结果设置为教科书的Text属性

double? result = compute1(var1, var2, opr1);
if(result!=null)
{
  txtResult.Text = result.Value.ToString();
}