Skip to content

Gendarme.Rules.Design.DisposableTypesShouldHaveFinalizerRule(2.10)

Sebastien Pouliot edited this page Feb 9, 2011 · 3 revisions

DisposableTypesShouldHaveFinalizerRule

Assembly: Gendarme.Rules.Design
Version: 2.10

Description

This rule will fire for types which implement System.IDisposable, contain native fields such as System.IntPtr, System.UIntPtr, and System.Runtime.InteropServices.HandleRef, but do not define a finalizer.

Examples

Bad example:

class NoFinalizer {
    IntPtr field;
}

Good example:

class HasFinalizer {
    IntPtr field;
    ~HasFinalizer ()
    {
        UnmanagedFree (field);
    }
}
Clone this wiki locally