Ensures ThreadStatic fields are marked static

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Metadata

ID: csharp-best-practices/ignored-threadstatic

Language: C#

Severity: Error

Category: Best Practices

Description

If a non-static field is marked ThreadStatic, the ThreadStatic attribute will be ignored. In this case, this rule suggests changing the field to be static.

Non-Compliant Code Examples

class NonCompliant {
    [ThreadStatic] public int foo;
    [ThreadStatic] int foo;
}

Compliant Code Examples

class Compliant {
    [ThreadStatic] static int foo;
    [ThreadStatic] public static int foo;

    int foo = 1;

    ThreadLocal<int> foo = new ThreadLocal<int> (() => 1);
    
    ThreadLocal<int> foo;
}
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