
org.sonar.plugins.csharp.S3218.html Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sonarlint-omnisharp-plugin Show documentation
Show all versions of sonarlint-omnisharp-plugin Show documentation
Code Analyzer based on Omnisharp
Why is this an issue?
Naming the members of an inner class the same as the static members of its enclosing class is possible but generally considered a bad practice.
That’s because maintainers may be confused about which members are being used in a given context. Instead the inner class member should be given
distinct and descriptive name, and all references to it should be updated accordingly.
class Outer
{
public static int A;
public class Inner
{
public int A; // Noncompliant
public int MyProp
{
get => A; // Returns inner A. Was that intended?
}
}
}
Here’s an example of compliant code after renaming the inner class member, this way the property will return the Outer
A:
class Outer
{
public static int A;
public class Inner
{
public int B; // Compliant
public int MyProp
{
get => A; // Returns outer A
}
}
}
Or if you want to reference the Inner
A field:
class Outer
{
public static int B;
public class Inner
{
public int A; // Compliant
public int MyProp
{
get => A; // Returns inner A
}
}
}
Resources
Documentation
© 2015 - 2025 Weber Informatics LLC | Privacy Policy