Dot-Net

IDisposable 對象的標準集合

  • October 15, 2017

IDisposable在查找表中有一堆對象(現在是普通的舊 Dictionary<>),但為了簡化程式碼並避免錯誤,我正在尋找一個“擁有”它所擁有的項目的集合類,並避免重新發明輪子——這樣的課程是否已經存在?

規範應該是: - 收藏品必須是一次性的,並且當它被丟棄時,所有包含的物品也應該被丟棄。- 每當刪除一個項目時,它Dispose()首先是-d。- 理想情況下,集合將是通用的,類型約束強制執行IDisposable所包含類型的 -ness。

我有點懷疑這樣的課程是否存在,但我對之前的存在感到ReadOnlyCollection驚喜ObservableCollection……

本質上,我想要 C++ STL 容器的等價物,然後是 CLR ;-)。

您正在尋找CompositeDisposable

   using System.Reactive.Disposables;

   ...

   CompositeDisposable xs = new CompositeDisposable(Disposable.Empty);
   xs.Add(Disposable.Empty);
   xs.Add(Disposable.Empty);
   xs.Dispose();

據我所知,只有 IComponents 的此類集合存在 - Container implements IContainer。對於通用 IDisposable,我認為您別無選擇,只能“重新發明輪子”。

引用自:https://stackoverflow.com/questions/1153707