gpt4 book ai didi

c# - 我应该有返回 Disposable 实例列表的方法吗?

转载 作者:太空狗 更新时间:2023-10-29 21:20:31 25 4
gpt4 key购买 nike

我有一个类,它的实例需要被释放。我还有几个产生这些实例的类,可以是单独的,也可以是它们的列表。

我应该返回 IList<MyClass>从我的方法或者我应该创建一个类 MyClassCollection哪个也是一次性的并返回这个?

编辑:

我问的主要原因是我已经做了很多这样的事情:

IList<MyObject> list = GetList();
foreach(MyObject obj in list)
{
//do something
obj.Dispose();
}

看来我最好这样做:

using (IList<MyObject> list = GetList())
{
foreach(MyObject obj in list)
{
//do something

}
}

最佳答案

生成项目的序列 ( IEnumerable<T> ) 而不是列表可能更容易 - 您可以通过多种方式将每个项目的生命周期绑定(bind)到迭代器中,以便:

  • 你一次只有一个(我猜它们很贵)
  • 当他们的时间到了时,他们会被处理掉
  • 他们都会被处理掉,即使是错误的

这是我探索过的话题here使用 LINQ,但也有其他方法,如果您的源是(或可以是)序列。

关于c# - 我应该有返回 Disposable 实例列表的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160999/

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