Skip to main content
Source: AL0036UseGuardNotNullAnalyzer.cs

Description

The pattern value ?? throw new ArgumentNullException(nameof(value)) is verbose. ANcpLua.Roslyn.Utilities provides Guard.NotNull() for cleaner null validation.

Bad Code

public class Service {
    private readonly ILogger _logger;

    public Service(ILogger logger) {
        _logger = logger ?? throw new ArgumentNullException(nameof(logger));
    }
}

Good Code

using ANcpLua.Roslyn.Utilities;

public class Service {
    private readonly ILogger _logger;

    public Service(ILogger logger) {
        _logger = Guard.NotNull(logger);
    }
}

Properties

  • Category: Usage
  • Severity: Warning
  • Enabled by default: True
  • Code fix available: False

Configuration

dotnet_diagnostic.AL0036.severity = warning

Notes

  • Automatically uses CallerArgumentExpression for parameter name
  • Throws ArgumentNullException with correct parameter name
  • Reduces boilerplate in constructors and methods