美文网首页
使用ref和out参数

使用ref和out参数

作者: bravelion | 来源:发表于2019-10-01 16:37 被阅读0次

1.交换两个数的值

static void swap(int x,int y){

    int temp = x;

    x = y;

    y = temp;

}

static void main(){

    int x = 42;

    int y = 6;

    swap(x,y);

    Console.WriteLine($"x is {x} ,y is {y}");

}

运行后,发现x,y的值并没有改变,为什么?

2.形参和实参

实参:调用方法的参数,如下的x,y

int x = 42;

int y = 6;

swap(x,y);

形参:是接受实参的一方,如下的x,y

static void swap(int x,int y){

}

向方法传递实参时,对应的参数(形参)通常会用实参的拷贝来初始化——不管参数是值类型,可空类型,还是引用类型。

以上例子如果想实现交换的功能,可以使用ref关键字。

static void swap(ref int x,ref int y){

int temp = x;

x = y;

y = temp;

}

static void main(){

int x = 42;

int y = 6;

swap(ref x,ref y);

Console.WriteLine($"x is {x} ,y is {y}");

}

注意观察,会发现,修改了两个地方:

1)方法参数添加了ref关键字

2)调用方法时,传递参数,也要添加ref关键字

那ref的作用是什么?

3.ref的作用

添加了ref前缀,C#编译器将生成代码传递对实参的引用,而不是传递实参的拷贝。

4.out

out的作用和ref相同,使用也一样。所不同的是,out要求,实参的初始化在方法中实现;而ref关键字标明的实参要求在传递给方法前就初始化。

相关文章

  • 使用ref和out参数

    1.交换两个数的值 static void swap(int x,int y){ int temp = x; ...

  • Out And Ref

    在C#中Out和Ref使用方法基本一样。Out使用时其实参数可以不赋值,在使用时在实参数前面加上Out,如下:Ou...

  • 17.03.12 .Net基础(三)

    out参数 out参数侧重于在函数中返回多个值 out参数要求必须在方法的内部为其赋值 ref参数 ref参数侧重...

  • C#—参数传递之 Ref 和 Out

    ref 和 out 声明的参数 1.两者都是按地址传递的,使用后都将改变原来参数的数值。 2.ref 可以把参数的...

  • C# ref & out

    1. What is ref & out ? 参数传递时按引用传递参数 2.Why need ref & out ...

  • ref 和 out

    ref:如果有ref修饰的参数那么该参数需要在传递之前初始化。 out:如果有out修饰的参数,那么该参数可以不需...

  • C#ref参数和out参数

    ref参数 作用:将一个变量传入一个函数中进行处理,处理完成后再将处理后的值带出函数语法:形参和实参前面都要加re...

  • ref关键字和out关键字

    1.怎么用: ref关键字主要用来传递参数,而out关键字用来返回结果 相同点:ref和out都是按地址传递(值类...

  • 细讲C#中的ref与out的区别

    很多时候参数按地址传递时加有OUT关键字,到底他和REF有什么区别呢? 好,我们直奔主题,ref是传递参数的地址,...

  • C#中out和ref之间的区别

    在本文,你将学会C#中 out 和 ref各自的区别,依旧具体使用场景。 共同点out、ref都是传递引用(内存地...

网友评论

      本文标题:使用ref和out参数

      本文链接:https://www.haomeiwen.com/subject/oebkpctx.html