实施“;将参数作为框“ref”;意思是

本文关键字:ref 意思是 参数 实施 | 更新日期: 2023-09-27 18:27:40

我最近读到一个关于CS1628的答案,"不能在匿名方法、lambda表达式或查询表达式中使用ref或out参数'parameter'"。

答案表明,解决这一问题的方法是在CLR中实现"将参数作为框引用"。

带有VS2010/C#4 的C#编译器错误CS1628

我不确定这意味着什么,似乎在谷歌上找不到任何参考资料。

有人能向我解释一下这件事吗?

实施“;将参数作为框“ref”;意思是

您可以声明一个"box"类:

class Box<T> { public T Value; }

将该类的实例传递给不能与ref一起使用的方法。该方法可以深入到对象中,对Value进行变异。呼叫者稍后可以提取CCD_ 3。

这是有效的(与ref相比),因为Box是在堆上分配的,并且具有"无限"的生存期。ref只能指使用寿命更受限制的位置。