Skip to content

Gendarme.Rules.Design.TypesWithNativeFieldsShouldBeDisposableRule(2.10)

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

TypesWithNativeFieldsShouldBeDisposableRule

Assembly: Gendarme.Rules.Design
Version: 2.10

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);
    }
}
Clone this wiki locally