我有一个类,它的实例需要被释放。我还有几个产生这些实例的类,可以是单独的,也可以是它们的列表。
我应该返回 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/