| TypeName | SA1212PropertyAccessorsMustFollowOrder |
| CheckId | SA1212 |
| Category | Ordering Rules |
A get accessor appears after a set or init accessor within a property or indexer.
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; }
}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.
To fix an instance of this violation, place the get accessor before the set accessor.
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1212:PropertyAccessorsMustFollowOrder", Justification = "Reviewed.")]#pragma warning disable SA1212 // PropertyAccessorsMustFollowOrder
#pragma warning restore SA1212 // PropertyAccessorsMustFollowOrder