Use descriptive variables in your WhenAny

In situations where you are detecting changes in multiple expressions, ensure you name the variables in the selector

Do

public class MyViewModel : ReactiveObject
{
  public MyViewModel()
  {
    this.WhenAny(
        x => x.SomeProperty.IsEnabled,
        x => x.SomeProperty.IsLoading,
        (isEnabled, isLoading) => isEnabled.Value && isLoading.Value)
        .Subscribe(_ => DoSomething());
  }

  // other code here
}

Don't

public class MyViewModel : ReactiveObject
{
  public MyViewModel()
  {
    this.WhenAny(
        x => x.SomeProperty.IsEnabled,
        x => x.SomeProperty.IsLoading,
        (x, y) => x.Value && y.Value)
        .Subscribe(_ => DoSomething());
  }

  // other code here
}

Why?

This helps greatly with the readability of complex expressions, particularly when working with boolean values.

results matching ""

    No results matching ""