方法有多个返回值时我一般喜欢加out参数

private void button3_Click(object sender, EventArgs e)
        {
            int aa;
            AddI(out aa);
            textBox3.Text = aa.ToString();
        }

        private void AddI(out int vo)
        {
            int ss = Convert.ToInt32(textBox3.Text.Trim());
            vo = ss + 2;
        }
//textBox3+2
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

渐渐发现引用类型的参数不加out参数也是可以的,值类型就必须要加out

a、引用类型不加out

1  private void button2_Click(object sender, EventArgs e)
 2         {
 3             List<string> list = new List<string>();
 4             AddList(list);
 5 
 6             StringBuilder stringBuilder = new StringBuilder();
 7             foreach (string ii in list)
 8             {
 9                 stringBuilder.AppendLine(ii);
10             }
11             textBox2.Text += stringBuilder.ToString();
12         }
13 
14         private void AddList(List<string> list)
15         {
16             list.Add("2");
17             list.Add("3");
18         }
//textBox2新增行2和3
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

b、值类型不加out

private void button1_Click(object sender, EventArgs e)
        {
            int ss = Convert.ToInt32(textBox1.Text.Trim());
            Add(ss);
            textBox1.Text = ss.ToString();
        }

        private int Add(int v)
        {
            return v += 2;
        }
//textBox1结果不变
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

作者:꧁执笔小白꧂