Dispose objects at most once

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: csharp-best-practices/dispose-objects-once

Language: C#

Severity: Info

Category: Best Practices

Description

From the documentation, the dispose() method should be called only once. Additional calls do not have any impact other than potential performance overhead.

Non-Compliant Code Examples

using System.Net;

class MyClass {
    public static void routine()
    {
        Disposable myObject;

        myObject.dispose();
        foo.bar();
        if(foo) {
            something.dispose();
        } else {
            myObject.dispose();
        }
        
    }
}
using System.Net;

class MyClass {
    public static void routine()
    {
        Disposable myObject;

        myObject.dispose();
        foo.bar();
        myObject.dispose();
    }
}
using System.Net;

class MyClass {
    public static void routine()
    {
        Disposable myObject;

        myObject.dispose();
        foo.bar();
        if(foo) {
            myObject.dispose();
        }
        
    }
}

Compliant Code Examples

class MyClass {
    public static void routine()
    {
        Disposable myObject;

        myObject.dispose();
    }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis