Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 1.73 KB

File metadata and controls

76 lines (58 loc) · 1.73 KB

SA1212

TypeName SA1212PropertyAccessorsMustFollowOrder
CheckId SA1212
Category Ordering Rules

Cause

A get accessor appears after a set or init accessor within a property or indexer.

Rule description

A violation of this rule occurs when a get accessor is placed after a set or init accessor within a property or indexer. To comply with this rule, the get accessor should appear first.

For example, the following code would raise an instance of this violation:

public string Name
{ 
    set { this.name = value; }
    get { return this.name; }
}

The code below would not raise this violation:

public string Name
{ 
    get { return this.name; }
    set { this.name = value; }
}

C# 8 readonly accessors

Readonly members in structs do not change the ordering requirement. A readonly getter still needs to appear before any set or init accessor to satisfy this rule.

public struct S
{
    public int Value
    {
        set => this.value = value;
        readonly get => this.value;
    }
}

The preceding property violates SA1212 because the readonly getter comes after the setter. Move the readonly getter before the setter to resolve the warning.

How to fix violations

To fix an instance of this violation, place the get accessor before the set accessor.

How to suppress violations

[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1212:PropertyAccessorsMustFollowOrder", Justification = "Reviewed.")]
#pragma warning disable SA1212 // PropertyAccessorsMustFollowOrder
#pragma warning restore SA1212 // PropertyAccessorsMustFollowOrder