在C#中,参数传递的方式有以下几种:
值传递(By Value):将实参的值复制给形参,即在函数内部对形参的修改不会影响实参的值。
引用传递(By Reference):将实参的引用传递给形参,即形参和实参指向同一个内存地址,对形参的修改会直接影响实参的值。
输出参数(Out Parameters):用于从方法中返回多个值。在方法调用时,实参需要在前面加上"out"关键字,并且在方法内部必须给输出参数赋值。
参数数组(Params Array):用于传递可变数量的参数。在方法定义时,可以使用"params"关键字声明一个参数数组,调用方法时可以传递任意数量的实参,这些实参会被组合成一个数组。
可选参数(Optional Parameters):用于方法的参数有默认值的情况,调用方法时可以省略这些参数。在方法定义时,可以为参数指定默认值,调用方法时可以省略该参数或者传递不同的值。
引用传递的副本(Ref Modifier):类似于引用传递,但是在方法内部不能修改引用本身,只能修改引用指向的对象。在方法调用时,实参需要在前面加上"ref"关键字。
需要注意的是,在C#中只有值类型(如int、float)是值传递,引用类型(如类、数组)除了使用值传递还可以使用引用传递。