C#中值参数、ref参数、out参数和params四种参数的区别

值参数:声明是不加任何修饰的参数,它表明实参和形参之间按值传递,当使用值参数的方法被调用时,编译器为形参分配存储单元,然后将对应的实参的值复制到形参中,由于是值类型的传递方式,所以在方法中对形参的修改,并不会影响实参。

ref参数:ref参数使用形参按引用传递,在方法中,对形参所做的任何更改都将反映在实参中,如果是要用ref参数,则方法声明和方法调用都必须显示的使用ref关键字。

out参数:out键字用来定义输出参数,它会导致参数通过引用来传递,这与ref参数类似,不同之处在于ref要求变量必须在传递之前进行赋值,而使用out关键字定义的参数不用进行赋值即可使用。如果要使用out参数,则方法声明和方法调用都必须显示的使用out关键字。

params参数:声明方法时,如果有多个相同类型的参数,可以定义为params参数,params参数是一个一维数组,主要用来指定在参数数目可变时所采用的方法参数。

使用ref参数时,需注意:

1.ref关键字只对跟在他后面的参数有效,而不是应用于整个参数列表。

2.调用方法时必须使用ref修饰实参,而且因为是引用参数,所以实参和实参的参数类型一定要完全匹配。

3.实参只能是变量,不能是常量或者表达式。

4.ref参数在调用之前一定要进行赋值。

 

posted @ 2020-11-03 15:38  嘿,阿然  阅读(393)  评论(0编辑  收藏  举报