Skip to main content
Source: AL0037UseTryParseExtensionsAnalyzer.cs

Description

The pattern int.TryParse(s, out var v) ? v : null is verbose. ANcpLua.Roslyn.Utilities provides typed TryParse extensions.

Bad Code

// Verbose TryParse patterns
var number = int.TryParse(input, out var n) ? n : null;
var guid = Guid.TryParse(input, out var g) ? g : default;
var date = DateTime.TryParse(input, out var d) ? d : null;

Good Code

using ANcpLua.Roslyn.Utilities;

// Clean extension methods
var number = input.TryParseInt32();
var guid = input.TryParseGuid();
var date = input.TryParseDateTime();

Properties

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

Configuration

dotnet_diagnostic.AL0037.severity = warning

Supported Types

TypeExtension
intTryParseInt32()
longTryParseInt64()
doubleTryParseDouble()
decimalTryParseDecimal()
boolTryParseBool()
GuidTryParseGuid()
DateTimeTryParseDateTime()
TimeSpanTryParseTimeSpan()