属性 或索引器不能作为 out 或 ref 参数传递 Xamarin.Forms (C#)

A property or indexer may not be passed as an out or ref parameter Xamarin.Forms (C#)

我已经通过以下方式在名为 BaseViewModel 的 class 中实现了 INotifyPropertyChanged ....

BASEVIEWMODEL.CS:

  public class BaseViewModel : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        protected void SetValue<T>(ref T backingField, T value, [CallerMemberName] string propertyName = null)
        {
            if (EqualityComparer<T>.Default.Equals(backingField, value))
            {
                return;
            }

            backingField = value;
            OnPropertyChanged(propertyName);
        }
    }

目的是我所有的 ViewModel 都继承自 BaseViewModel 从而回收代码,但是我在创建依赖于属性的 属性 时发现了以下问题

如您所见,我的 GymViewModel 继承自我的 BaseViewModel,我如何创建一个依赖于属性的 属性?我究竟做错了什么?对我有什么帮助吗?

编译器产生错误,因为您将 gimnasios 设为 属性 而不是字段:

private ObservableCollection<Gimnasio> gimnasios { get; set; }

正如编译器所说,您不能将 属性 作为 ref 参数传递。

您可能希望 gimnasios 成为 Gimnasios 属性 的支持 字段 ,因此请将 { get; set; } 替换为分号:

private ObservableCollection<Gimnasio> gimnasios;