ref和out
我们都知道,给方法传递参数,值类型传递拷贝,引用类型传递引用,但都不能在函数内部修改外部的变量的指向。这个时候就要使用到ref和out(相当于把变量都传进去了),它们的作用是不同的。
ref的作用:方法内部改变方法外部变量的引用;
out的作用:方法内部内部给方法外部变量初始化,相当于一个函数多个返回值。
使用注意:
1、使用ref型参数是,传入的参数必须先被初始化,方法内部可以不赋值;
对于out型参数,方法内部必须对其完成初始化,方法外部不用初始化,初始化也没用。
2、使用ref和ou时,在方法的参数和执行方法时,都要加ref和out关键字,以满足匹配。
3、out适合用在return多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
ref:
先看一个例子:
创建一个Person对象,给Name属性赋值,并且声明一个变量i=5;创建一个Test方法,参数为Person类型和int 类型
在Main方法中调用Test方法,传入perosn对象和i,打印它们的值

运行可以看到结果,为lisi和5
这是因为,person对象是引用类型,传递的是引用,int类型的参数是值类型,传递的就是值本身

解决这么问题我们可以使用ref类修饰方法的参数,ref可以让方法内部改变方法外部变量的引用,相当于把变量都传进去了。
看下面的例子,创建Test2方法,使用ref修饰参数。

执行可以看到结果,方法内部把Perons Name属性的值和int i的值都改变了。

out
还是一上面的例子为例,直接看代码:
新建一个方法Test3有一个int类型的参数y被out修饰,方法内部对y进行了赋值改变,
在Main方法中调用Test3,使用out修饰参数,直接将Test3方法内部的参数值给带出来了,相当于返回值一样。

执行可以看到结果为777


浙公网安备 33010602011771号