Skip to main content
Source: AL0038UseGetOrNullAnalyzer.cs

Description

The pattern dict.TryGetValue(key, out var v) ? v : null is verbose. ANcpLua.Roslyn.Utilities provides cleaner dictionary access extensions.

Bad Code

// Verbose TryGetValue patterns
var value = dict.TryGetValue(key, out var v) ? v : null;
var item = cache.TryGetValue(id, out var i) ? i : default;

Good Code

using ANcpLua.Roslyn.Utilities;

// Clean extension methods
var value = dict.GetOrNull(key);
var item = cache.GetOrDefault(id);

Properties

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

Configuration

dotnet_diagnostic.AL0038.severity = warning

Notes

  • GetOrNull() - returns null for missing keys (reference types)
  • GetOrDefault() - returns default(T) for missing keys
  • Works with Dictionary<K,V>, IDictionary<K,V>, IReadOnlyDictionary<K,V>