I have a variable "pen" of type System.Drawing.Pen which is getting assigned multiple times in a particular method. I want to put it within "using" statement. How I can do that?
Pen pen = new Pen(Color.Gray);
// some code which uses gray value
pen = new Pen(Color.Green);
// some code which uses green value
pen = new Pen(Color.Red);
// some code which uses red value
Thanks in advance.
Well, Pen
implements IDisposable
since it allocates unmanaged resources (HPEN
) and thus in general case using
is required.
In your current code you have resource leakage:
Pen pen = new Pen(Color.Gray);
// some code which uses gray value
pen = new Pen(Color.Green); // <- from now on Pen(Color.Gray) is leaked
// some code which uses green value
pen = new Pen(Color.Red); // <- from now on Pen(Color.Green) is leaked
// some code which uses red value
You can either use predefined pens (no using
required):
Pen pen = Pens.Gray;
// some code which uses gray value
pen = Pens.Green;
// some code which uses green value
pen = Pens.Red;
// some code which uses red value
Or if you want to create Pen
s manually, wrap them into using
:
using (Pen pen = new Pen(Color.Gray)) {
// some code which uses gray value
}
using (Pen pen = new Pen(Color.Green) {
// some code which uses green value
}
using (Pen pen = new Pen(Color.Red)) {
// some code which uses red value
}