From 798ea71ce1c39233c37859ffef2cc09246eb94db Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 3 Sep 2020 12:55:44 +0200 Subject: [PATCH] Minor codegen improvement in SetProperty with Action --- .../ComponentModel/ObservableObject.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Microsoft.Toolkit.Mvvm/ComponentModel/ObservableObject.cs b/Microsoft.Toolkit.Mvvm/ComponentModel/ObservableObject.cs index a4b786cf..4c4b020d 100644 --- a/Microsoft.Toolkit.Mvvm/ComponentModel/ObservableObject.cs +++ b/Microsoft.Toolkit.Mvvm/ComponentModel/ObservableObject.cs @@ -136,7 +136,19 @@ namespace Microsoft.Toolkit.Mvvm.ComponentModel /// protected bool SetProperty(T oldValue, T newValue, Action callback, [CallerMemberName] string? propertyName = null) { - return SetProperty(oldValue, newValue, EqualityComparer.Default, callback, propertyName); + // We avoid calling the overload again to ensure the comparison is inlined + if (EqualityComparer.Default.Equals(oldValue, newValue)) + { + return false; + } + + OnPropertyChanging(propertyName); + + callback(newValue); + + OnPropertyChanged(propertyName); + + return true; } ///