gpt4 book ai didi

c# - "Using"输出参数

转载 作者:行者123 更新时间:2023-12-02 13:49:03 27 4
gpt4 key购买 nike

假设我有一个简单的一次性类:

class CanDispose : IDisposable
{
...
}

现在我显然可以将其放入“using” block 中以使其处置:

using (var myDisposable = new CanDispose())
{
...
}

但是如果我有一个通过输出参数返回一次性的工厂方法怎么办?在我的示例中,可以有多个返回,因此多个出局是干净的:

public bool CreateDisposable(out CanDispose canDispose)
{
canDispose = new CanDispose();
...
return ret;
}

如何将其放入 using 语句中?简单地将函数调用放入 using block 中似乎不起作用。我是否必须返回一个元组(这会起作用吗?),还是有更简单的方法?

请注意,这似乎不起作用。至少它不会在超出范围之前关闭有关处置的警告:

using (CreateDisposable(out CanDispose myDispose))
{
....
}

最佳答案

using 语句没有声明变量。将一次性作为 out 参数并不理想,您应该在自己的代码中避免使用它,但如果您正在使用执行此操作的库,则只需将变量放入 >调用方法后使用 block 的表达式。

CreateDisposable(out CanDispose myDispose);
using (myDispose)
{
}

关于c# - "Using"输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59619955/

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