Dispose Fields
- 3 minutes to read
In This Article
Disposes of IDisposable fields contained in the current IDisposable class.
#Availability
From the context menus or via shortcuts:
- When the edit caret is on a declaration of a class implementing the IDisposable interface, provided that it contains the Dispose method and undisposed fields of types that implement IDisposable.
#Example
class │FormDrawer:IDisposable
{
private Graphics _CurrentGraphics;
private Pen _DefaultPen;
public FormDrawer(Form operatedForm)
{
_CurrentGraphics = operatedForm.CreateGraphics();
_DefaultPen = new Pen(Color.Black);
}
public void DrawCircle(int centerX, int centerY, int radius)
{
_CurrentGraphics.DrawEllipse(_DefaultPen, centerX - radius, centerY - radius, radius * 2, radius * 2);
}
public void DrawCircle(int centerX, int centerY, int radius, Pen pen)
{
_CurrentGraphics.DrawEllipse(pen, centerX - radius, centerY - radius, radius * 2, radius * 2);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
}
}
}
Class │FormDrawer
Implements IDisposable
Private _CurrentGraphics As Graphics
Private _DefaultPen As Pen
Public Sub New(ByVal operatedForm As Form)
_CurrentGraphics = operatedForm.CreateGraphics()
_DefaultPen = New Pen(Color.Black)
End Sub
Public Sub DrawCircle(ByVal centerX As Integer, ByVal centerY As Integer, ByVal radius As Integer)
_CurrentGraphics.DrawEllipse(_DefaultPen, centerX - radius, centerY - radius, radius * 2, radius * 2)
End Sub
Public Sub DrawCircle(ByVal centerX As Integer, ByVal centerY As Integer, ByVal radius As Integer, ByVal pen As Pen)
_CurrentGraphics.DrawEllipse(pen, centerX - radius, centerY - radius, radius * 2, radius * 2)
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If disposing Then
End If
End Sub
End Class
Result:
class FormDrawer:IDisposable
{
private Graphics _CurrentGraphics;
private Pen _DefaultPen;
public FormDrawer(Form operatedForm)
{
_CurrentGraphics = operatedForm.CreateGraphics();
_DefaultPen = new Pen(Color.Black);
}
public void DrawCircle(int centerX, int centerY, int radius)
{
_CurrentGraphics.DrawEllipse(_DefaultPen, centerX - radius, centerY - radius, radius * 2, radius * 2);
}
public void DrawCircle(int centerX, int centerY, int radius, Pen pen)
{
_CurrentGraphics.DrawEllipse(pen, centerX - radius, centerY - radius, radius * 2, radius * 2);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (_CurrentGraphics != null)
{
_CurrentGraphics.Dispose();
_CurrentGraphics = null;
}
if (_DefaultPen != null)
{
_DefaultPen.Dispose();
_DefaultPen = null;
}
}
}
}
Class FormDrawer
Implements IDisposable
Private _CurrentGraphics As Graphics
Private _DefaultPen As Pen
Public Sub New(ByVal operatedForm As Form)
_CurrentGraphics = operatedForm.CreateGraphics()
_DefaultPen = New Pen(Color.Black)
End Sub
Public Sub DrawCircle(ByVal centerX As Integer, ByVal centerY As Integer, ByVal radius As Integer)
_CurrentGraphics.DrawEllipse(_DefaultPen, centerX - radius, centerY - radius, radius * 2, radius * 2)
End Sub
Public Sub DrawCircle(ByVal centerX As Integer, ByVal centerY As Integer, ByVal radius As Integer, ByVal pen As Pen)
_CurrentGraphics.DrawEllipse(pen, centerX - radius, centerY - radius, radius * 2, radius * 2)
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If _CurrentGraphics IsNot Nothing Then
_CurrentGraphics.Dispose()
_CurrentGraphics = Nothing
End If
If _DefaultPen IsNot Nothing Then
_DefaultPen.Dispose()
_DefaultPen = Nothing
End If
End If
End Sub
End Class