はこねのはこ

はこねさんの備忘録

UniRxのSubjectのインスタンス生成時にタイポして通知が飛ばなかった話

はじめに

もうこんなことはないと思うが念のため。
エラー文が出てないなかったのでタイポをしているとは思わなかった。 特定まで時間がかかったのは単純にここを見ていなかったから。

反省

下記のように記述していた。

public class HogeManager : IHoge
{
    public IObservable<Hoge> HogeObservable => _hogeSubject;
    private Subject<Hoge> _hogeSubject => new Subject<Hoge>();
}

public interface IHoge
{
    IObservable<Hoge> HogeObservable { get; }
}

ここだけ見れば気づけると思うが
private Subject _hogeSubject => new Subject();

正しくは↓

public class HogeManager : IHoge
{
    public IObservable<Hoge> HogeObservable => _hogeSubject;
    private Subject<Hoge> _hogeSubject = new Subject<Hoge>();
}