Browse Source

Use _value field where possible.

Allows more code to be inlined by not checking `HasValue` twice.
pull/3255/head
Steven Kirk 7 years ago
parent
commit
8e9a1cce04
  1. 10
      src/Avalonia.Base/Data/BindingValue.cs
  2. 10
      src/Avalonia.Base/Data/Optional.cs

10
src/Avalonia.Base/Data/BindingValue.cs

@ -135,10 +135,10 @@ namespace Avalonia.Data
/// Converts the binding value to an <see cref="Optional{T}"/>.
/// </summary>
/// <returns></returns>
public Optional<T> ToOptional() => HasValue ? new Optional<T>(Value) : default;
public Optional<T> ToOptional() => HasValue ? new Optional<T>(_value) : default;
/// <inheritdoc/>
public override string ToString() => HasError ? $"Error: {Error!.Message}" : Value?.ToString() ?? "(null)";
public override string ToString() => HasError ? $"Error: {Error!.Message}" : _value?.ToString() ?? "(null)";
/// <summary>
/// Converts the value to untyped representation, using <see cref="AvaloniaProperty.UnsetValue"/>,
@ -152,7 +152,7 @@ namespace Avalonia.Data
{
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 @@ namespace Avalonia.Data
/// </summary>
/// <param name="defaultValue">The default value.</param>
/// <returns>The value.</returns>
public T ValueOrDefault(T defaultValue = default) => HasValue ? Value : defaultValue;
public T ValueOrDefault(T defaultValue = default) => HasValue ? _value : defaultValue;
/// <summary>
/// Gets the value of the binding value if present, otherwise a default value.
@ -204,7 +204,7 @@ namespace Avalonia.Data
public TResult ValueOrDefault<TResult>(TResult defaultValue = default)
{
return HasValue ?
Value is TResult result ? result : default
_value is TResult result ? result : default
: defaultValue;
}

10
src/Avalonia.Base/Data/Optional.cs

@ -54,23 +54,23 @@ namespace Avalonia.Data
public bool Equals(Optional<T> other) => this == other;
/// <inheritdoc/>
public override int GetHashCode() => HasValue ? Value!.GetHashCode() : 0;
public override int GetHashCode() => HasValue ? _value?.GetHashCode() ?? 0 : 0;
/// <summary>
/// Casts the value (if any) to an <see cref="object"/>.
/// </summary>
/// <returns>The cast optional value.</returns>
public Optional<object> ToObject() => HasValue ? new Optional<object>(Value) : default;
public Optional<object> ToObject() => HasValue ? new Optional<object>(_value) : default;
/// <inheritdoc/>
public override string ToString() => HasValue ? Value?.ToString() ?? "(null)" : "(empty)";
public override string ToString() => HasValue ? _value?.ToString() ?? "(null)" : "(empty)";
/// <summary>
/// Gets the value if present, otherwise a default value.
/// </summary>
/// <param name="defaultValue">The default value.</param>
/// <returns>The value.</returns>
public T ValueOrDefault(T defaultValue = default) => HasValue ? Value : defaultValue;
public T ValueOrDefault(T defaultValue = default) => HasValue ? _value : defaultValue;
/// <summary>
/// Gets the value if present, otherwise a default value.
@ -84,7 +84,7 @@ namespace Avalonia.Data
public TResult ValueOrDefault<TResult>(TResult defaultValue = default)
{
return HasValue ?
Value is TResult result ? result : default
_value is TResult result ? result : default
: defaultValue;
}

Loading…
Cancel
Save