【问题标题】:C# out variable in list [duplicate]列表中的C#输出变量[重复]
【发布时间】:2019-07-09 08:24:16
【问题描述】:

我正在学习这本书的考试参考 70-483:Programming in C#。

在使用并发集合一章中,有一个例子:

   #region Listing 1-30
        ConcurrentBag<int> bag = new ConcurrentBag<int>();
        bag.Add(42);
        bag.Add(21);
        int result;
        if (bag.TryTake(out result))
            Console.WriteLine(result);
        if (bag.TryPeek(out result))
            Console.WriteLine("There is a next item: {0}", result);
        #endregion

问题是:它如何将变量 int 结果与 bag 联系起来?

没有声明结果 = bag.DoSomeThingInLinq。

提前致谢

【问题讨论】:

  • 您了解out 变量的工作原理吗?而且您还了解 TryTake() (可能)返回 两个 值 - 采用的值,加上一个结果标志?
  • bag.TryTake(out result) 因为已经声明了“result”。 “输出结果”连接它。我认为,您应该阅读“out”的工作原理。 out 关键字导致参数通过引用传递。它使形参成为实参的别名,实参必须是变量。换句话说,对参数的任何操作都是在参数上进行的。它类似于 ref 关键字,只是 ref 要求在传递变量之前对其进行初始化。关于“out”的 MSDN 链接:docs.microsoft.com/en-us/dotnet/csharp/language-reference/…>

标签: c# out


【解决方案1】:

如何将变量 int 结果与 bag 连接起来?

bag.TryTake(out result)

上面的行试图从包中取出并退回物品。如果成功(即返回 true 时),则 out 参数 result 将包含取值。

当方法使用 out 参数时,这意味着它将通过引用传递。然后使用它的方法必须为其分配一个值。

见:

ConcurrentBag

out parameter modifier

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 2018-01-01
    • 1970-01-01
    • 2020-04-18
    • 2022-08-13
    • 2019-03-20
    • 2013-10-16
    • 2013-10-22
    相关资源
    最近更新 更多