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.
This commit is contained in:
ema
2025-12-25 02:13:20 +08:00
parent 06694e0b16
commit 2e75f6e2fb

View File

@@ -23,12 +23,11 @@ using System.Windows.Data;
namespace QuickLook.Plugin.ArchiveViewer; 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) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
if (value == null) value ??= 0;
value = 0;
var percent = (double)value; var percent = (double)value;
return Math.Abs(percent - 100) < 0.00001 ? Visibility.Visible : Visibility.Collapsed; 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) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
if (value == null) value ??= 0;
value = 0;
var percent = (double)value; var percent = (double)value;
return Math.Abs(percent - 100) < 0.00001 ? Visibility.Collapsed : Visibility.Visible; 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) 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) 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) 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) 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) 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) public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{ {