接口定义
IDisposable Subscribe(
IObserver<T> observer
)
然后在看一下实现
public IDisposable Subscribe(IObserver<Location> observer)
{
observers.Add(observer);
// Announce current location to new observer.
observer.OnNext(this.Location);
return observer as IDisposable;
}
在来看下iobserver
public interface IObserver<in T>
问题出来了,iobserver没有继承idisposable,为啥可以吧observer类型转换成idisposable??
MSDN:http://msdn.microsoft.com/en-us/library/dd783449(VS.100).aspx
看了这篇文章的疑问。
看一下C#语言文档里关于 as 的说明吧.
http://msdn.microsoft.com/zh-cn/library/cscsdfbt%28v=VS.71%29.aspx
托管的类当然没有自动实现IDisposable,这里也没有说observer一定是一个IDisposable,不是的情况下,就返回null了。