以下代码生成两个CA2000警告(除此之外,但这不是重点).
public sealed class Item: IDisposable
{
public void Dispose() {}
}
public sealed class ItemContainer
{
public void Add(Item item)
{
}
}
public sealed class Test: IDisposable
{
private ICollection<Item> itemCollection;
private ItemContainer itemContainer;
private void Add(Item item)
{
itemCollection.Add(item);
}
public void Initialize()
{
var item1 = new Item(); // no warning
itemCollection.Add(item1);
var item2 = new Item(); // CA2000: call Dispose on object item2
Add(item2);
var item3 = new Item(); // CA2000: call Dispose on object …Run Code Online (Sandbox Code Playgroud)