diff --git a/.editorconfig b/.editorconfig index d53ca2d35e..5f9188af73 100644 --- a/.editorconfig +++ b/.editorconfig @@ -756,6 +756,9 @@ dotnet_diagnostic.CA1844.severity = warning # Use span-based 'string.Concat'. dotnet_diagnostic.CA1845.severity = warning +# Prefer AsSpan over Substring. +dotnet_diagnostic.CA1846.severity = warning + # Use string.Contains(char) instead of string.Contains(string) with single characters. dotnet_diagnostic.CA1847.severity = warning diff --git a/OpenRA.Game/Primitives/Color.cs b/OpenRA.Game/Primitives/Color.cs index efe18fdba4..3a69a2cde4 100644 --- a/OpenRA.Game/Primitives/Color.cs +++ b/OpenRA.Game/Primitives/Color.cs @@ -168,13 +168,13 @@ namespace OpenRA.Primitives return false; byte alpha = 255; - if (!byte.TryParse(value[0..2], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var red) - || !byte.TryParse(value[2..4], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var green) - || !byte.TryParse(value[4..6], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var blue)) + if (!byte.TryParse(value.AsSpan(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var red) + || !byte.TryParse(value.AsSpan(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var green) + || !byte.TryParse(value.AsSpan(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var blue)) return false; if (value.Length == 8 - && !byte.TryParse(value[6..8], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out alpha)) + && !byte.TryParse(value.AsSpan(6, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out alpha)) return false; color = FromArgb(alpha, red, green, blue); diff --git a/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs b/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs index 0045dcc382..a7b2ecdf13 100644 --- a/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs +++ b/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs @@ -209,7 +209,7 @@ namespace OpenRA.Platforms.Default var lines = p.StandardOutput.ReadToEnd().Split('\n'); foreach (var line in lines) - if (line.StartsWith("Xft.dpi") && int.TryParse(line[8..], out var dpi)) + if (line.StartsWith("Xft.dpi") && int.TryParse(line.AsSpan(8), out var dpi)) windowScale = dpi / 96f; } catch { }