The rule needs to distinguish between instance and static members.
Primary constructor parameters and instance fields/properties can only be shadowed in instance methods.
class Repro_XXXX(int primaryCtorParam)
{
private int instanceField = 1;
private int instanceProperty { get; set; } = 1;
private static int staticField = 1;
private static int staticProperty = 1;
public static void StaticMethod()
{
var instanceField = 2; // Noncompliant FP (instance field is not accessible from static method)
var instanceProperty = 2; // Noncompliant FP (instance property is not accessible from static method)
var primaryCtorParam = 2; // Noncompliant FP (primary ctor parameter is not accessible from static method)
var staticField = 2; // Noncompliant
var staticProperty = 2; // Noncompliant
}
}
The rule needs to distinguish between instance and static members.
Primary constructor parameters and instance fields/properties can only be shadowed in instance methods.