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;
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)
{