В этот ответ на вопрос о Subject<T> Энигматичность упоминается:
как в сторону, вы должны стараться избегать использования предметов вообще. общее правило заключается в том, что если вы используете тему, то вы делаете что-то не так.
Я часто использую объекты в качестве полей поддержки для свойств IObservable, которые, вероятно, были бы событиями .NET за несколько дней до Rx. например вместо чего-то вроде
public class Thing
{
    public event EventHandler SomethingHappened;
    private void DoSomething()
    {
        Blah();
        SomethingHappened(this, EventArgs.Empty);
    }
}
Я мог бы сделать
public class Thing
{
    private readonly Subject<Unit> somethingHappened = new Subject<Unit>();
    public IObservable<Unit> SomethingHappened
    {
        get { return somethingHappened; }
    }
    private void DoSomething()
    {
        Blah();
        somethingHappened.OnNext(Unit.Default);
    }
}
Итак, если я хочу избежать использования Subject, что было бы правильным способом сделать это? Или я должен придерживаться использования событий .NET в своих интерфейсах, даже если они будут потребляться кодом Rx (возможно, FromEventPattern)?
Кроме того, немного более подробная информация о том, почему использование Subject, как это, является плохой идеей, было бы полезно.
  Обновить. Чтобы сделать этот вопрос более конкретным, я говорю об использовании Subject<T> в качестве способа получить код не-Rx (возможно, вы работаете с каким-либо другим наследием кода) в мир Rx. Итак, что-то вроде:
class MyVolumeCallback : LegacyApiForSomeHardware
{
    private readonly Subject<int> volumeChanged = new Subject<int>();
    public IObservable<int> VolumeChanged
    {
        get
        {
            return volumeChanged.AsObservable();
        }
    }
    protected override void UserChangedVolume(int newVolume)
    {
        volumeChanged.OnNext(newVolume);
    }
}
Где вместо использования событий тип LegacyApiForSomeHardware заставляет вас переопределять виртуальные методы как способ получения уведомлений "это только что случилось".