using System.Reactive.Linq;
class LineInfoEventArgs: EventArgs {
public LineInfo LineInfo { get; set; }
interface ILineInfoProvider {
void Subscribe(string lineId);
event EventHandler<LineInfoEventArgs> LineInfoReceived;
interface ILineInfoProvider2 {
IObservable<LineInfo> Subscribe(string lineId);
class LineInfoProvider2 : ILineInfoProvider2 {
public IObservable<LineInfo> Subscribe(string lineId) => Observable.Return(new LineInfo());
public static void Main() {
ILineInfoProvider2 x = new LineInfoProvider2();
x.Subscribe("myLine").Select(y => 2).Where(y => y == 0).Subscribe(Console.WriteLine);