Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 1.84 KB

SA1503.md

File metadata and controls

66 lines (49 loc) · 1.84 KB

SA1503

TypeName SA1503BracesMustNotBeOmitted
CheckId SA1503
Category Layout Rules

Cause

The opening and closing braces for a C# statement have been omitted.

Rule description

A violation of this rule occurs when the opening and closing braces for a statement have been omitted. In C#, some types of statements may optionally include braces. Examples include if, while, and for statements. For example, an if-statement may be written without braces:

if (true) 
    return this.value;

Although this is legal in C#, StyleCop always requires the braces to be present, to increase the readability and maintainability of the code.

When the braces are omitted, it is possible to introduce an error in the code by inserting an additional statement beneath the if-statement. For example:

if (true) 
    this.value = 2;       
    return this.value;

Glancing at this code, it appears as if both the assignment statement and the return statement are children of the if-statement. In fact, this is not true. Only the assignment statement is a child of the if-statement, and the return statement will always execute regardless of the outcome of the if-statement.

StyleCop always requires the opening and closing braces to be present, to prevent these kinds of errors:

if (true) 
{
    this.value = 2;
    return this.value;
}

How to fix violations

To fix a violation of this rule, wrap the body of the statement in braces.

How to suppress violations

[SuppressMessage("StyleCop.CSharp.LayoutRules", "SA1503:BracesMustNotBeOmitted", Justification = "Reviewed.")]
#pragma warning disable SA1503 // BracesMustNotBeOmitted
#pragma warning restore SA1503 // BracesMustNotBeOmitted