When is Dispose necessary?

前端 未结 6 878
抹茶落季
抹茶落季 2020-12-05 20:09

When you have code like:

Bitmap bmp = new Bitmap ( 100, 100 );
Graphics g = Graphics.FromImage ( bmp );

Pen p = new Pen ( Color.FromArgb ( 128, Color.Blue )         


        
6条回答
  •  佛祖请我去吃肉
    2020-12-05 20:42

    I know other people have put code examples here, but I started so I'll finish:

    using (Bitmap bmp = new Bitmap(100, 100))
    {
      using (Graphics g = Graphics.FromImage(bmp))
      {
        using (Pen p = new Pen(Color.FromArgb(128, Color.Blue), 1))
        {
          using (Brush b = new SolidBrush(Color.FromArgb(128, Color.Blue)))
          {
            g.FillEllipse(b, 0, 0, 99, 99);
            g.FillRegion(b, pictureBox1.Region);
    
            pictureBox1.BackColor = Color.Transparent;
            pictureBox1.Image = bmp;
          }
        }
      }
    }
    

    I always use using in my code since it calls Dispose() on your object automatically, even if there is an exception raised in the using block. I use it a lot for SharePoint projects (but that's another story...).

提交回复
热议问题