gpt4 book ai didi

c# - params 是否可用于通过使用 yield 的函数通过 ref 传递变量

转载 作者:太空狗 更新时间:2023-10-30 00:58:16 26 4
gpt4 key购买 nike

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

像这样:

public static void GetRowsIter(ref params valuesToUpdate)
{

foreach(row in rows)
{
foreach(param in valuesToUpdate
{
GetValueForParam(param)
}
yield;
}
}

这合法吗? (我远离我的编译器,或者我会尝试一下。)

最佳答案

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

话虽这么说,如果类型是引用类型,那么它将像往常一样展示引用类型语义,这意味着对对象所做的任何更改都将反射(reflect)在有权访问该对象的所有代码中引用。只有对实际变量的赋值不会被反射(reflect)。

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

关于c# - params 是否可用于通过使用 yield 的函数通过 ref 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3176884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com