参数ref、out浅析
out
和 ref
是 C# 语言中传递参数的关键字,用于在方法调用中修改参数值。它们分别用于输出参数和引用参数。但都可以用于优化代码性能和减少内存分配。
out:只出不进,可用于在方法调用中设置输出参数。输出参数是在方法调用过程中分配并返回给调用方的参数。输出参数必须在函数体内初始化,然后在方法内部进行修改。使用输出参数可以减少方法重载的数量。
例子:
Test(); static void Test() { int a = 1; int b = 2; int sum; Sum( a, b, out sum); } static void Sum(int a, int b, out int sum) { sum = a + b;//返回给调用方的是out的sum }
ref:又进又出,可用于传递参数,也可用于输出参数。这意味着在方法内部对参数所做的更改将反映在调用方中的原始变量上。传递参数必须外初始化(方法体内或者方法体外都可以),使用引用参数可以避免在方法中创建新的变量。
例子:
Test(); static void Test() { int a = 1; int b = 2; int e; Max(a, ref b); } static void Max(int a, ref int b) { if (a > b) { b = a; } Console.WriteLine($"{b}"); //返回给调用方的是ref 的b }