c#参数传递之引用参数

时间:2021-09-23 04:47:37

每一个想要做到模块化编程的码农都不可避免的一个问题是参数传递(如果您在这里觉得有疑问,诶,我不想做模块化呢,以笔者经验这个你大可不必揪心,因为你的老师或者老板会让你做到的)。以c语言为例,主调函数传参给被调函数的情况中,87%的情况都是要改变参数的值。这时候有两种方法做到这个,第一传指针,一般情况下正常的MADE IN EARTH的人类都会下意识避免遇到指针问题,因为这往往涉及一些空间问题、越界问题很容易出错,尤其参数是数组的时候,这时候就要涉及二级指针,指针的指针,听名字就一定更容易出错。第二个方法就容易保险多了,返回值。这个方法有局限性,只能一次返回一个值。自己写一个hello world不觉得有什么,一旦开始做项目,开始没觉得什么,画流程图,指针各种乱指,绝对爽到爆。ok,指针吐槽到此结束。(by the way,目前碰到好像只有c语言有指针吧。)
c#里面要解决被调改变形参的值的解决方法有两个,第一个是传引用。这个我觉得跟指针差不多,具体他怎么实现的,引用是什么我觉得不必深究。面向对象就有这个好处,封装嘛,不比计较那么多。作为一名兢兢业业的码农,你所要做的,就是实参和形参前面都加上ref关键字就万事大吉。参数的使用跟没加ref没什么不一样的。下面贴出主要部分代码。
  简述:c#引用参数类型传参数的实例,类似于c的指针类型。


 private void button1_Click(object sender, EventArgs e)
{
string x_Text = textBox_x.Text;
string y_Text = textBox_y.Text;
int x, y;
x = Convert.ToInt32(x_Text);
y = Convert.ToInt32(y_Text);

swap(ref x, ref y);

textBox_xAfter.Text = x.ToString();
textBox_yAfter.Text = y.ToString();


}

static private void swap(ref int x, ref int y)
{
int temp;
temp = x;
x = y;
y = temp;
}