From 2e75f6e2fb73cc57aa502c14612f5ff4078d4fea Mon Sep 17 00:00:00 2001 From: ema Date: Thu, 25 Dec 2025 02:13:20 +0800 Subject: [PATCH] Make converter classes sealed and simplify null checks All converter classes are now sealed to prevent inheritance, improving clarity and potential performance. Null checks in Percent100 converters are simplified using the null-coalescing assignment operator. --- .../Converters.cs | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/Converters.cs b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/Converters.cs index c52d175..949d2be 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/Converters.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/Converters.cs @@ -23,12 +23,11 @@ using System.Windows.Data; namespace QuickLook.Plugin.ArchiveViewer; -public class Percent100ToVisibilityVisibleConverter : DependencyObject, IValueConverter +public sealed class Percent100ToVisibilityVisibleConverter : DependencyObject, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - if (value == null) - value = 0; + value ??= 0; var percent = (double)value; return Math.Abs(percent - 100) < 0.00001 ? Visibility.Visible : Visibility.Collapsed; @@ -40,12 +39,11 @@ public class Percent100ToVisibilityVisibleConverter : DependencyObject, IValueCo } } -public class Percent100ToVisibilityCollapsedConverter : DependencyObject, IValueConverter +public sealed class Percent100ToVisibilityCollapsedConverter : DependencyObject, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - if (value == null) - value = 0; + value ??= 0; var percent = (double)value; return Math.Abs(percent - 100) < 0.00001 ? Visibility.Collapsed : Visibility.Visible; @@ -57,7 +55,7 @@ public class Percent100ToVisibilityCollapsedConverter : DependencyObject, IValue } } -public class LevelToIndentConverter : DependencyObject, IMultiValueConverter +public sealed class LevelToIndentConverter : DependencyObject, IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { @@ -75,7 +73,7 @@ public class LevelToIndentConverter : DependencyObject, IMultiValueConverter } } -public class LevelToBooleanConverter : DependencyObject, IValueConverter +public sealed class LevelToBooleanConverter : DependencyObject, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { @@ -90,7 +88,7 @@ public class LevelToBooleanConverter : DependencyObject, IValueConverter } } -public class BooleanToAsteriskConverter : DependencyObject, IValueConverter +public sealed class BooleanToAsteriskConverter : DependencyObject, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { @@ -105,7 +103,7 @@ public class BooleanToAsteriskConverter : DependencyObject, IValueConverter } } -public class SizePrettyPrintConverter : DependencyObject, IMultiValueConverter +public sealed class SizePrettyPrintConverter : DependencyObject, IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { @@ -121,7 +119,7 @@ public class SizePrettyPrintConverter : DependencyObject, IMultiValueConverter } } -public class DatePrintConverter : DependencyObject, IMultiValueConverter +public sealed class DatePrintConverter : DependencyObject, IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { @@ -137,7 +135,7 @@ public class DatePrintConverter : DependencyObject, IMultiValueConverter } } -public class FileExtToIconConverter : DependencyObject, IMultiValueConverter +public sealed class FileExtToIconConverter : DependencyObject, IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) {