All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.plugins.csharp.S3005.html Maven / Gradle / Ivy

There is a newer version: 10.2.0.105762
Show newest version

Why is this an issue?

When you annotate a field with the ThreadStatic attribute, it is an indication that the value of this field is unique for each thread. But if you don’t mark the field as static, then the ThreadStatic attribute is ignored.

The ThreadStatic attribute should either be removed or replaced with the use of ThreadLocal<T> class, which gives a similar behavior for non-static fields.

How to fix it

Code examples

Noncompliant code example

public class MyClass
{
  [ThreadStatic]  // Noncompliant
  private int count = 0;

  // ...
}

Compliant solution

public class MyClass
{
  private int count = 0;

  // ...
}

or

public class MyClass
{
  private readonly ThreadLocal<int> count = new ThreadLocal<int>();
  public int Count
  {
    get { return count.Value; }
    set { count.Value = value; }
  }
  // ...
}

Resources

Documentation





© 2015 - 2024 Weber Informatics LLC | Privacy Policy