Skip to content

Gendarme.Rules.Design.TypesWithNativeFieldsShouldBeDisposableRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

TypesWithNativeFieldsShouldBeDisposableRule

Assembly: Gendarme.Rules.Design
Version: git

Description

This rule will fire if a type contains IntPtr, UIntPtr, or HandleRef fields but does not implement System.IDisposable.

Examples

Bad examples:

public class DoesNotImplementIDisposable {
    IntPtr field;
}
abstract public class AbstractDispose : IDisposable {
    IntPtr field;
    // the field should be disposed in the type that declares it
    public abstract void Dispose ();
}

Good example:

public class Dispose : IDisposable {
    IDisposable field;
    public void Dispose ()
    {
        UnmanagedFree (field);
    }
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally