可以使用params通过使用yield的函数通过ref传递变量

如果我有一个具有params参数的方法,它可以通过引用传递,并在每次调用yield时更新。

像这样的东西:

 public static void GetRowsIter(ref params valuesToUpdate) { foreach(row in rows) { foreach(param in valuesToUpdate { GetValueForParam(param) } yield; } } 

这合法吗? (我离开了我的编译器,或者我只是尝试一下。)

编号只是创建一个包含传递参数的数组。 与所有其他数组一样,此数组只是变量的集合,并且无法声明ref变量或数组类型。 因此,只有实际的显式参数可以作为refout传递。

话虽这么说,如果类型是引用类型,那么它将像往常一样展示引用类型语义,这意味着对对象所做的任何更改都将反映在有权访问该引用的所有代码中。 仅反映实际变量的分配

但是,我不确定您的代码究竟要做什么。 yield语句必须后跟return语句和一个值,或者由break语句后跟迭代语句。