S3052 — Members should not be initialized to default values

Language
C#
Type
Code smell
Severity
Minor
Tags
convention, finding

Why is this an issue?

The compiler automatically initializes class fields, auto-properties and events to their default values before setting them with any initialization values, so there is no need to explicitly set a member to its default value. Further, under the logic that cleaner code is better code, it’s considered poor style to do so.

Noncompliant code example


class X
{
  public int field = 0; // Noncompliant
  public object o = null; // Noncompliant
  public object MyProperty { get; set; } = null; // Noncompliant
  public event EventHandler MyEvent = null;  // Noncompliant
}

Compliant solution


class X
{
  public int field;
  public object o;
  public object MyProperty { get; set; }
  public event EventHandler MyEvent;
}

Exceptions

const fields are ignored.

↑ Back to top