From 8e9a1cce0410afc40c77be87a4152e819164761c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 4 Dec 2019 11:25:53 +0100 Subject: [PATCH] Use _value field where possible. Allows more code to be inlined by not checking `HasValue` twice. --- src/Avalonia.Base/Data/BindingValue.cs | 10 +++++----- src/Avalonia.Base/Data/Optional.cs | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Base/Data/BindingValue.cs b/src/Avalonia.Base/Data/BindingValue.cs index 50e71cf3fc7..e1f53698993 100644 --- a/src/Avalonia.Base/Data/BindingValue.cs +++ b/src/Avalonia.Base/Data/BindingValue.cs @@ -135,10 +135,10 @@ private BindingValue(BindingValueType type, T value, Exception? error) /// Converts the binding value to an . /// /// - public Optional ToOptional() => HasValue ? new Optional(Value) : default; + public Optional ToOptional() => HasValue ? new Optional(_value) : default; /// - public override string ToString() => HasError ? $"Error: {Error!.Message}" : Value?.ToString() ?? "(null)"; + public override string ToString() => HasError ? $"Error: {Error!.Message}" : _value?.ToString() ?? "(null)"; /// /// Converts the value to untyped representation, using , @@ -152,7 +152,7 @@ private BindingValue(BindingValueType type, T value, Exception? error) { BindingValueType.UnsetValue => AvaloniaProperty.UnsetValue, BindingValueType.DoNothing => BindingOperations.DoNothing, - BindingValueType.Value => Value, + BindingValueType.Value => _value, BindingValueType.BindingError => new BindingNotification(Error, BindingErrorType.Error), BindingValueType.BindingErrorWithFallback => @@ -190,7 +190,7 @@ public BindingValue WithValue(T value) /// /// The default value. /// The value. - public T ValueOrDefault(T defaultValue = default) => HasValue ? Value : defaultValue; + public T ValueOrDefault(T defaultValue = default) => HasValue ? _value : defaultValue; /// /// Gets the value of the binding value if present, otherwise a default value. @@ -204,7 +204,7 @@ public BindingValue WithValue(T value) public TResult ValueOrDefault(TResult defaultValue = default) { return HasValue ? - Value is TResult result ? result : default + _value is TResult result ? result : default : defaultValue; } diff --git a/src/Avalonia.Base/Data/Optional.cs b/src/Avalonia.Base/Data/Optional.cs index 3fbcd356ff1..5c9cbcec3cb 100644 --- a/src/Avalonia.Base/Data/Optional.cs +++ b/src/Avalonia.Base/Data/Optional.cs @@ -54,23 +54,23 @@ public Optional(T value) public bool Equals(Optional other) => this == other; /// - public override int GetHashCode() => HasValue ? Value!.GetHashCode() : 0; + public override int GetHashCode() => HasValue ? _value?.GetHashCode() ?? 0 : 0; /// /// Casts the value (if any) to an . /// /// The cast optional value. - public Optional ToObject() => HasValue ? new Optional(Value) : default; + public Optional ToObject() => HasValue ? new Optional(_value) : default; /// - public override string ToString() => HasValue ? Value?.ToString() ?? "(null)" : "(empty)"; + public override string ToString() => HasValue ? _value?.ToString() ?? "(null)" : "(empty)"; /// /// Gets the value if present, otherwise a default value. /// /// The default value. /// The value. - public T ValueOrDefault(T defaultValue = default) => HasValue ? Value : defaultValue; + public T ValueOrDefault(T defaultValue = default) => HasValue ? _value : defaultValue; /// /// Gets the value if present, otherwise a default value. @@ -84,7 +84,7 @@ public Optional(T value) public TResult ValueOrDefault(TResult defaultValue = default) { return HasValue ? - Value is TResult result ? result : default + _value is TResult result ? result : default : defaultValue; }