在Rx的介绍中说:
行为主体通常与类属性相关联。由于它们始终具有值并且可以提供更改通知,因此它们可以是属性支持字段的候选项。
但是,我真的找不到如何做到这一点的清晰示例。
如果我理解正确,建议这样的东西:
private BehaviorSubject<int> _myNumber = new BehaviorSubject<int>(0);
public int MyNumber
{
get { return _myNumber.Value; } // optional
set { _myNumber.OnNext(value); }
}
public IObservable MyNumbers
{
get { return _myNumber.AsObservable(); }
}
我对此有几个问题:
- 这确实是所提议的吗?
- 这种模式是否有通用名称,我可以进一步谷歌?因为我不知道该怎么称呼它,我的搜索失败了。
- 这算不算好做法?或者有更好的方法来做同样的事情(即创建一个可观察的字段(?
- 您对此的命名约定有何建议?
我总是把它作为INotifyPropertyChanged
的可观察版本,如:
private BehaviorSubject<int> _myNumberChanged = new BehaviorSubject<int>(0);
private int _myNumber;
public int MyNumber
{
get => _myNumber;
set
{
if (_myNumber == value)
{
return;
}
_myNumber = value;
_myNumberChanged.OnNext(_myNumber);
}
}
然后:
var subscription = _myNumberChanged.Subscribe(i => { });