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 Pens 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
}