任何人都可以建议我确切使用out关键字作为参数,以及它如何连接从函数返回多个值,如在POST中,我与变量与正常变量混淆.任何人都可以帮助我.
解决方法:
这经常令人困惑,我认为MSDN文档实际上有点“只有在已知的情况下才会清楚”.也就是说,它是正确的,但只有你已经理解了这个概念才真正有意义.
这是我如何看待它.
常规参数生成参数值的副本.当你说:
static int M(int z) { z = z + 1; return z; }
...
int x = 123;
int y = M(x);
就像你说的那样:
int x = 123;
int z = x; // make a copy of x
z = z + 1;
int y = z;
ref或out参数为现有变量创建别名.当你说
static void N(ref int q) { q = q + 1; }
...
int x = 123;
N(x);
这跟说:
int x = 123;
// MAGIC: q is now an another name for variable x
q = q + 1;
q和x是两个不同的名称,它们指的是同一个变量.递增q也会增加x,因为它们是相同的.前一个示例中的z和x是两个不同的名称,它们指的是两个不同的变量.增加z不会改变x.
总结:“out”和“ref”只是表示“不要创建新变量;而是暂时为现有变量创建第二个名称”.
那现在清楚了吗?
更新:我没有说“out”和“ref”之间的区别是什么.区别很简单.在“调用方”一侧,在调用方法之前,“ref”必须是明确赋值的变量. “出局”不一定是.在“被调用方”一侧,可以在写入之前读取“ref”,但必须在读取之前写入“out”.此外,必须在控制正常离开方法之前写入“out”.
标签:c,net,keyword,out
来源: https://codeday.me/bug/20190712/1442417.html