这不是一个骗局从匿名方法调用带有 ref 或 out 参数的方法 https://stackoverflow.com/questions/1001475/calling-a-method-with-ref-or-out-parameters-from-an-anonymous-method
我想知道why匿名方法中不允许使用 out 参数。不允许ref参数对我来说更有意义,但是out参数,没那么多。
你对此有何看法
从某些方面来说,这是一个骗局。Out
参数是ref
参数。 C# 语言使用的值只是有一个额外的属性。禁止它们的原因与ref
参数。
这里的问题源于在匿名方法内使用匿名方法外部声明的值的影响。这样做将捕获 lambda 内的值,并在必要时任意将其生命周期延长到当前函数的生命周期之外。这不兼容out
具有固定生命周期的参数。
想象一下,例如out
参数引用堆栈上的局部变量。 lambda 可以在未来的任意点执行,因此可以在该堆栈帧不再有效时执行。会发生什么out
参数是什么意思呢?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)