BehaviorSubject <t>作为支持字段?

时间:2018-01-19 15:38:44

标签: c# system.reactive rx.net

Intro to Rx中说:

  

BehaviorSubjects通常与类属性相关联。由于它们始终具有值并且可以提供更改通知,因此它们可以成为将字段备份到属性的候选者。

但是,我无法找到一个明确的例子来说明这一点。

如果我理解正确的话,建议这样的事情:

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(); }
}

我有几个问题:

  • 这确实是提出来的吗?
  • 这种模式是否有一般名称,我可以进一步了解Google吗?由于我不知道该怎么称呼它,我的搜索时间很短。
  • 这被认为是好习惯吗?或者有更好的方法来做同样的事情(即创建一个可观察的字段)?
  • 你会建议作为这个的命名惯例吗?

1 个答案:

答案 0 :(得分:1)

我总是认为它是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 => { });

然后:

def __str__(self):
        return str(self.file)