Skip to main content
Source: Al0051UseGuardDefinedEnumAnalyzer.cs

Description

Use Guard.DefinedEnum() instead of verbose enum-validation and throw patterns.

Bad Code

public void SetStatus(Status status)
{
    if (!Enum.IsDefined(typeof(Status), status))
        throw new ArgumentOutOfRangeException(nameof(status));
}

Good Code

public void SetStatus(Status status)
{
    Guard.DefinedEnum(status);
}

Properties

  • Category: Roslyn Utilities
  • Severity: Warning
  • Enabled by default: True
  • Code fix available: True

Configuration

dotnet_diagnostic.AL0051.severity = warning