Manual null checks are verbose. C# 11 has built-in helper for cleaner validation.
Old Way:
public void ProcessUser(User user, string name, ILogger logger)
{
if (user == null)
throw new ArgumentNullException(nameof(user));
if (name == null)
throw new ArgumentNullException(nameof(name));
if (logger == null)
throw new ArgumentNullException(nameof(logger));
// Actual logic...
}
New Way (C# 11):
public void ProcessUser(User user, string name, ILogger logger)
{
ArgumentNullException.ThrowIfNull(user);
ArgumentNullException.ThrowIfNull(name);
ArgumentNullException.ThrowIfNull(logger);
// Actual logic...
}
// Same validation, 70% less code!
With Custom Message:
ArgumentNullException.ThrowIfNull(user, nameof(user));
Other Helpers:
ArgumentNullException.ThrowIfNullOrEmpty(name); ArgumentNullException.ThrowIfNullOrWhiteSpace(input); ArgumentOutOfRangeException.ThrowIfNegative(count); ArgumentOutOfRangeException.ThrowIfZero(divisor);
Concise, readable, built-in!
