C# 行为主体<;T>;作为后盾?
下面是这样说的: 行为子对象通常与类属性相关联。因为它们总是有一个值,并且可以提供更改通知,所以它们可以作为属性的备用字段 然而,我找不到一个明确的例子来说明如何做到这一点 如果我理解正确的话,建议这样做:C# 行为主体<;T>;作为后盾?,c#,system.reactive,rx.net,C#,System.reactive,Rx.net,下面是这样说的: 行为子对象通常与类属性相关联。因为它们总是有一个值,并且可以提供更改通知,所以它们可以作为属性的备用字段 然而,我找不到一个明确的例子来说明如何做到这一点 如果我理解正确的话,建议这样做: private BehaviorSubject<int> _myNumber = new BehaviorSubject<int>(0); public int MyNumber { get { return _myNumber.Value; } // opt
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(); }
}
private BehaviorSubject\u myNumber=new BehaviorSubject(0);
公共整数MyNumber
{
获取{return\u myNumber.Value;}//可选
设置{u myNumber.OnNext(值);}
}
公共IObservable MyNumber
{
获取{return _myNumber.AsObservable();}
}
关于这一点,我有几个问题:
- 这是否真的是我们所建议的
- 这个模式有一个通用的名字吗?我可以用谷歌搜索一下吗?因为我不知道该怎么称呼它,所以我的搜索结果很差
- 这是否被视为良好做法?或者有没有更好的方法来做同样的事情(即创建一个可观察的领域)
- 你认为这个命名约定是什么
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 => { });