Skip to content

Gendarme.Rules.Security.NativeFieldsShouldNotBeVisibleRule(2.10)

Sebastien Pouliot edited this page Jan 22, 2011 · 2 revisions

NativeFieldsShouldNotBeVisibleRule

Assembly: Gendarme.Rules.Security
Version: 2.10

Description

This rule checks if a class exposes native fields. Native fields should not be public because you lose control over their lifetime (other code could free the memory or use it after it has been freed).

Examples

Bad example:

public class HasPublicNativeField {
    public IntPtr NativeField;
}

Good example (hide):

class HasPrivateNativeField {
    private IntPtr NativeField;
    public void DoSomethingWithNativeField ();
}

Good example (read-only):

class HasReadOnlyNativeField {
    public readonly IntPtr NativeField;
}
Clone this wiki locally