none
IDisposable, CA2000 a ToolStripMenuItem

    Dotaz

  • Následující úsek kódu, nacházející se v rámci partial class dědice třídy Form, neprochází ve Visual Studio přes Code Analysis.

    CA2000 : Microsoft.Reliability : object 'item' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'item' before all references to it are out of scope. 

    ToolStripMenuItem item = new ToolStripMenuItem();
    
    item.Text = "Nějaký název"; item.Enabled = false; SomeStripItem.DropDownItems.Add(item);
    Když kód obalím pomocí using(){}, tak na konci bloku se item vytratí i z DropDownItems kolekce. Jak má tedy kód vypadat, aby byl "správně"? Díky.
    14. srpna 2010 19:22

Odpovědi

  • Správné je tu hlášku ignorovat. O správný dispose se v tomto případě stará SomeStripItem a je to jeho úkol.

    Code Analysis na to upozorní, protože nevidí do kódu SomeStripItem.

    • Označen jako odpověď MCCZ 18. srpna 2010 21:22
    18. srpna 2010 19:26