下面是C#中out和ref的详解攻略。
1. out 和 ref 的作用
out和ref一般用于方法参数中,可以用来传递一个参数的引用地址,而不是传递参数的值。不同的是,ref修饰的参数在方法结束时仍然具有它传入时的值,而out修饰的参数在方法结束时必须返回数据。
2. 示例说明
2.1 使用 ref 关键字
static void Main(string[] args)
{
int val = 42;
AddOne(ref val);
Console.WriteLine(val); // 43
}
static void AddOne(ref int val)
{
val++;
}
在上面的示例中,调用AddOne方法,使用ref修饰val参数,可以使方法中对val的更改直接影响到Main方法中val的值。所以最后Console输出的是43,而不是原来的42。
2.2 使用 out 关键字
static void Main(string[] args)
{
int quotient, remainder;
DivRem(7, 3, out quotient, out remainder);
Console.WriteLine(quotient); // 2
Console.WriteLine(remainder); // 1
}
static void DivRem(int a, int b, out int quotient, out int remainder)
{
quotient = a / b;
remainder = a % b;
}
在上面的示例中,DivRem方法中使用out修饰了quotient和remainder参数,类似于C++中使用指针一样,可以在方法内改变参数的值。最终Console中输出了quotient和remainder的计算结果。
3. 总结
ref和out关键字都可以将参数以引用地址的方式传入方法,与C++中的指针具有类似的效果。但两者的区别在于,ref修饰的参数在方法结束时具有传入时的值,而out修饰的参数必须在方法中赋值后才能使用,否则会报错。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C#中的out和ref - Python技术站