医治白癜风的著名专家 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);//
|