时间:2020-8-6来源:本站原创作者:佚名
医治白癜风的著名专家 https://m-mip.39.net/disease/mipso_5452907.html
前言

在C#中,ref和out是很特殊的两个关键字。使用它们的时候就可以让参数按照引用来传递。

通常我们向方法中传递的是一个值,方法获得的是这些值的一个拷贝,然后再使用这些拷贝,当方法运行完后,这些拷贝就将被丢弃,但是原来的值不受到影响。

但是有时,我们需要改变原来变量中的值,所以我们可以向方法传递变量的引用,而不是变量的值。

引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值。变量的值储存在内存中,当我们创建一个引用并且修改它时,修改的是内存中的值,因此这个变量的值就被修改。

但是这两个关键字的功能有稍许不同,我们先看一个简单的例子:

staticvoidTestRefAndOut(){  strings1="Whatthehell";  TestRef(refs1);  Console.WriteLine(s1);//output:Whatthehell}staticvoidTestRef(refstringstr){  str="Helloworld";}

成功编译并输出,其实如果把ref改成out也是一样的,那这两个关键字的区别是什么呢,继续测试:

staticvoidTestRefAndOut(){  strings1="Whatthehell";  TestRef(refs1);}staticvoidTestRef(refstringstr){  Console.WriteLine(str);//output:Whatthehell}

staticvoidTestRefAndOut(){  strings1="Whatthehell";  TestOut(outs1);}staticvoidTestOut(outstringstr){  Console.WriteLine(str);//
转载请注明原文网址:http://www.helimiaopu.com/bbqb/7846.html

------分隔线----------------------------