diff --git a/.editorconfig b/.editorconfig index b4c617e0bb..9ae52b8bbd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -139,10 +139,12 @@ dotnet_analyzer_diagnostic.category-Performance.severity = none #error - Uncomme # CA1802: Use literals where appropriate dotnet_diagnostic.CA1802.severity = warning -# CA1825: Avoid zero-length array allocations -dotnet_diagnostic.CA1825.severity = warning +# CA1820: Test for empty strings using string length +dotnet_diagnostic.CA1820.severity = warning # CA1821: Remove empty finalizers dotnet_diagnostic.CA1821.severity = warning +# CA1825: Avoid zero-length array allocations +dotnet_diagnostic.CA1825.severity = warning #CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters dotnet_diagnostic.CA1847.severity = warning diff --git a/src/Avalonia.Controls.DataGrid/DataGridValueConverter.cs b/src/Avalonia.Controls.DataGrid/DataGridValueConverter.cs index 82670bf989..6144679b60 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridValueConverter.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridValueConverter.cs @@ -28,8 +28,8 @@ namespace Avalonia.Controls { if (targetType != null && targetType.IsNullableType()) { - String strValue = value as String; - if (strValue == String.Empty) + var strValue = value as string; + if (string.IsNullOrEmpty(strValue)) { return null; } diff --git a/src/Avalonia.Controls/AppBuilderBase.cs b/src/Avalonia.Controls/AppBuilderBase.cs index 6b7101cd49..1dfad7dcc5 100644 --- a/src/Avalonia.Controls/AppBuilderBase.cs +++ b/src/Avalonia.Controls/AppBuilderBase.cs @@ -210,9 +210,9 @@ namespace Avalonia.Controls { var moduleInitializers = from assembly in AppDomain.CurrentDomain.GetAssemblies() from attribute in assembly.GetCustomAttributes() - where attribute.ForWindowingSubsystem == "" + where string.IsNullOrEmpty(attribute.ForWindowingSubsystem) || attribute.ForWindowingSubsystem == WindowingSubsystemName - where attribute.ForRenderingSubsystem == "" + where string.IsNullOrEmpty(attribute.ForRenderingSubsystem) || attribute.ForRenderingSubsystem == RenderingSubsystemName group attribute by attribute.Name into exports select (from export in exports diff --git a/src/Avalonia.Controls/DateTimePickers/TimePicker.cs b/src/Avalonia.Controls/DateTimePickers/TimePicker.cs index 228b9ae205..a7a6881fe5 100644 --- a/src/Avalonia.Controls/DateTimePickers/TimePicker.cs +++ b/src/Avalonia.Controls/DateTimePickers/TimePicker.cs @@ -99,7 +99,7 @@ namespace Avalonia.Controls get => _clockIdentifier; set { - if (!(string.IsNullOrEmpty(value) || value == "" || value == "12HourClock" || value == "24HourClock")) + if (!(string.IsNullOrEmpty(value) || value == "12HourClock" || value == "24HourClock")) throw new ArgumentException("Invalid ClockIdentifier"); SetAndRaise(ClockIdentifierProperty, ref _clockIdentifier, value); SetGrid(); diff --git a/src/Avalonia.Controls/DefinitionBase.cs b/src/Avalonia.Controls/DefinitionBase.cs index eb09ff397a..64a02ccb46 100644 --- a/src/Avalonia.Controls/DefinitionBase.cs +++ b/src/Avalonia.Controls/DefinitionBase.cs @@ -366,7 +366,7 @@ namespace Avalonia.Controls string id = (string)value; - if (id != string.Empty) + if (!string.IsNullOrEmpty(id)) { int i = -1; while (++i < id.Length) diff --git a/src/Avalonia.DesignerSupport/Remote/HtmlTransport/SimpleWebSocketHttpServer.cs b/src/Avalonia.DesignerSupport/Remote/HtmlTransport/SimpleWebSocketHttpServer.cs index 9a872df960..6bfae536c9 100644 --- a/src/Avalonia.DesignerSupport/Remote/HtmlTransport/SimpleWebSocketHttpServer.cs +++ b/src/Avalonia.DesignerSupport/Remote/HtmlTransport/SimpleWebSocketHttpServer.cs @@ -72,7 +72,7 @@ namespace Avalonia.DesignerSupport.Remote.HtmlTransport while (true) { line = await ReadLineAsync(); - if (line == "") + if (string.IsNullOrEmpty(line)) break; sp = line.Split(new[] {':'}, 2); headers[sp[0]] = sp[1].TrimStart(); diff --git a/src/Avalonia.X11/X11Structs.cs b/src/Avalonia.X11/X11Structs.cs index 23abd31b2c..3f0a6aeb67 100644 --- a/src/Avalonia.X11/X11Structs.cs +++ b/src/Avalonia.X11/X11Structs.cs @@ -661,7 +661,7 @@ namespace Avalonia.X11 { Type type = ev.GetType (); FieldInfo [] fields = type.GetFields (System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Instance); for (int i = 0; i < fields.Length; i++) { - if (result != string.Empty) { + if (!string.IsNullOrEmpty(result)) { result += ", "; } object value = fields [i].GetValue (ev); diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs index f6616d74a2..029f8e236c 100644 --- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs +++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs @@ -80,7 +80,7 @@ namespace Avalonia.Visuals.UnitTests.Media.TextFormatting var remaining = remainingChars.Where(x => x != "" && x != "×").Select(x => Convert.ToInt32(x, 16)).ToArray(); codepoints.AddRange(remaining); - } + } var data = new GraphemeBreakData {