C# 方法的返回值

C# 方法的返回值,c#,C#,我正在创建20个文本框的计算器-10个用于输入,10个用于输出。创建一个方法后,我将parameterdefined放在前10个文本框中,然后将值返回给main方法 要获取所有10个值,是否真的需要为所有10个或更多文本框编写代码,因为我已经开始了,或者有更聪明的方法如何传递到方法textbox参数并一次返回多个值 更新: 正如您所建议的,我创建了元组列表并使用foreach循环遍历它们,但现在我得到了错误: 错误1无法将类型“int”隐式转换为“string”。你能帮我指出问题出在哪里吗 私有

我正在创建20个文本框的计算器-10个用于输入,10个用于输出。创建一个方法后,我将parameterdefined放在前10个文本框中,然后将值返回给main方法

要获取所有10个值,是否真的需要为所有10个或更多文本框编写代码,因为我已经开始了,或者有更聪明的方法如何传递到方法textbox参数并一次返回多个值

更新:

正如您所建议的,我创建了元组列表并使用foreach循环遍历它们,但现在我得到了错误: 错误1无法将类型“int”隐式转换为“string”。你能帮我指出问题出在哪里吗

私有无效按钮1\u单击对象发送者,事件参数e

    {

        List<Tuple<TextBox,TextBox>> tuple1 = new List<Tuple<TextBox,TextBox>>();
        tuple1.Add(Tuple.Create(textBox1, textBox2));
        tuple1.Add(Tuple.Create(textBox3, textBox4));
        tuple1.Add(Tuple.Create(textBox5, textBox6));
        tuple1.Add(Tuple.Create(textBox7, textBox8));


        foreach (Tuple<TextBox,TextBox> box in tuple1)
        {
            var inputBox = box.Item1;
            var outputBox = box.Item2;
            outputBox.Text = MethodA(Convert.ToInt32(inputBox.Text));
        }
    }

    private int MethodA(int Parameter1)
    {
    int A = Parameter1;
    int B = 20;
    int C;

    if (A == 16 && B == 20) { C = 15; } else if (A == 20 && B == 20) { C = 25; } else { C = 0; };
    return C;
    }

您可以将所有输入输出文本框组合存储在构造函数中:

private List<Tuple<TextBox, TextBox>> textBoxes = new List<Tuple<TextBox, TextBox>>();

public Form1() {
    InitializeComponents();
    textBoxes.add(Tuple.Create(textBox1, textBox4);
    // ...
}

这可能不是最好的答案,但它会起作用:

public class Extensions
{
     public MethodA(this TextBox tb)
     {
         tb.Text = (Convert.ToInt32(tb.Text) + 5).ToString();
     }
}
现在你可以打电话:

 textBox1.MethodA();
 textBox2.MethodA();
……等等

这不一定是推荐的,但这是一种方法,您可以简单地多次这样做

如果您不想重复这一点,那么最好以相同的方式内联逻辑:

 textBox1.Text = (Convert.ToInt32(textBox1.Text) + 5).ToString();
 textBox2.Text = (Convert.ToInt32(textBox2.Text) + 5).ToString();
 textBox3.Text = (Convert.ToInt32(textBox3.Text) + 5).ToString();

1创建一个字典或元组列表来链接文本框对,2在集合中循环从一个文本框获取输入并将输出放入另一个文本框。从一个方法返回多个值不是很好的做法,在这里也没有必要。您使用的是窗口窗体吗?是的,我使用的是窗口窗体。我猜这个Tuple类对于像我这样的新手来说有点太复杂了,所以我会搜索一下它到底是什么,它做了什么,然后回到这篇文章。谢谢你们的帮助。@D Stanley,@Michael有什么想法吗,伙计们?
 textBox1.Text = (Convert.ToInt32(textBox1.Text) + 5).ToString();
 textBox2.Text = (Convert.ToInt32(textBox2.Text) + 5).ToString();
 textBox3.Text = (Convert.ToInt32(textBox3.Text) + 5).ToString();