一般情况下,向方法传递一个实参时,对应的形参会用实参的一个副本来初始化。也就是说,随便在方法内部进行怎样的修改,都不会影响作为参数来传递的那个变量的原始值。改变的只是实参的一个副本,而不是原始实参。
如果对一个形参附加了ref关键字作为前缀,该参数就会成为实参的一个引用,而不是实参的副本。所以,在方法内对实参的任何操作都会应用于实参,因为形参和实参引用的是同一个对象。且注意在使用ref时,变量必须先赋值才能使用(没有值不能操作)。
out关键字与ref有相似的效果,既都使形参和实参引用同一个对象。所以对实参的任何操作都会应用与实参。不同的是,在向方法传递了一个out参数后,必须在方法内部对其进行赋值。也就是通过方法来初始实参(out的意思便是“输出”)。
另外,在方法定义和使用时都要在参数前加上ref或out关键字。 |