ref和out有什么区别?(C#)任何简洁的解释?还回答:Differencebetweenrefandoutparametersin.NETForcallers:Formethods:So:intx;Foo(参考x);//无效:x未明确赋值Bar(outx);//即使x没有明确赋值也是有效的Console.WriteLine(x);//有效-x现在已明确赋值...publicvoidFoo(refinty){Console.WriteLine(y);//有效//不需要给y赋值}publicvoidBar(outinty){Console.WriteLine(y);//无效:y未明确赋值if(someCondition){//无效-返回前必须给y赋值return;}elseif(someOtherCondition){//有效-如果我们抛出异常,则不需要为y赋值thrownewException();}否则{y=10;//有效-一旦我们明确分配给y,我们就可以返回return;}}最简洁的看法:ref=inoutout=out参见MSDN上的这篇文章。真的,他们的做法都略有不同。ref和out参数传递模式用于允许方法更改调用者传入的变量。ref和out之间的区别很微妙但很重要。每种参数传递方式旨在适用于略有不同的编程场景。out和ref参数之间的一个重要区别是每个参数使用的明确赋值规则。带有参数的方法的调用者不需要在调用前分配给作为输出参数传递的变量;但是,被调用者需要在返回之前分配out参数。资料来源:MSDN从Alex提到的MSDN文章中,带有参数的方法的调用者不需要在调用前分配给作为out参数传递的变量;但是,被调用者需要在返回之前分配out参数。相反,ref参数被认为是最初由被调用者分配的。因此,被调用者在使用ref参数之前不需要赋值。总而言之,在方法内部,您可以考虑设置参数参数,但不能考虑输出参数——您必须设置这些参数。在方法之外,它们的行为应该相同。查看JonSkeet关于c#中的参数的文章:http://www.yoda.arachsys.com/csharp/parameters.html以上是C#学习教程:ref和out有什么区别?(C#)分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
