gpt4 book ai didi

c# - 延期执行会不会先调用Dispose导致失败?

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

有两种方法,其中一种方法在 using 语句中使用 LINQ 返回数据。我想知道查询是否有可能抛出某种异常,因为查询执行被推迟并且它正在使用的变量已经被释放?

class Foo
{
void Bar()
{
var bazResult = Baz();
//... use bazResult here...
}

IEnumerable<int> Baz()
{
using (var d = new SomeDisposableSource())
{
return d.Select(e => e.Id);
}
}

顺便说一句,它一定已经以某种形式被问过,但我找不到明显的候选人。所以别踢我太狠:)

最佳答案

我认为如果对象被处置,你会有一个异常(exception)。 This thread 非常相似,并提供了几种处理问题的方法。最简单的方法是通过执行 return d.Select(e => e.Id).ToList() 来强制执行,但这可能不适合您

关于c# - 延期执行会不会先调用Dispose导致失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113614/

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