TypeName | SA1503BracesMustNotBeOmitted |
CheckId | SA1503 |
Category | Layout Rules |
The opening and closing braces for a C# statement have been omitted.
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;
}
To fix a violation of this rule, wrap the body of the statement in braces.
[SuppressMessage("StyleCop.CSharp.LayoutRules", "SA1503:BracesMustNotBeOmitted", Justification = "Reviewed.")]
#pragma warning disable SA1503 // BracesMustNotBeOmitted
#pragma warning restore SA1503 // BracesMustNotBeOmitted