gpt4 book ai didi

c# - 我如何在 C# 中制作参数 `out`?

转载 作者:可可西里 更新时间:2023-11-01 08:16:54 26 4
gpt4 key购买 nike

我发现自己处于需要这样做的情况

public static void Fill(this SomeClass c, params out object[] p)

并将其称为

c.Fill(out i, out i2, out sz, out i3, out sz2);

但是我收到错误 error CS1611: The params parameter cannot be declared as ref or out

我怎样才能传入可变长度的参数并使它们可写?所有这些都是整数和字符串的混合

最佳答案

您不能让它将参数视为out(或ref)使用params功能同时。它根本行不通。您可以做的最好的事情是创建一个数组参数,制作array out,声明一个数组变量并调用传递数组的方法,然后通过索引手动检查每个元素.

Foo(out object[] data) {...}
object[] result;
Foo(out result);
// look at result[0], result[1], result[2] etc

所以:你不能做你想做的事。即使你可以,ref/out never 工作,除非数据类型之间存在精确匹配,所以它仍然必须是:

object o1, o2, o3, o4;
Foo(out o1, out o2, out o3, out o4);
// cast o1, o2, o3, o4

这仍然不是您想要的。

关于c# - 我如何在 C# 中制作参数 `out`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1912326/

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