StreamReader是不是继承了TextReader。
只有看过类定义才能看出问题.

解决方案 »

  1.   

    这么一说我有点明白了:
    StreamReader 好象是 TextReader 派生出来的
      

  2.   

    还是没有全明白:
    为什么有时候没问题,有时候不行?既然 StreamReader 是派生类,应该调用的是它的成员函数
    为什么 TextReader 要插一杠子?
      

  3.   

    即使是继承TextReader,在运行时调用close方法也会定位到一个上面,不可能一会调用TextReader的,一会调用StreamReader 的。
    我想是不是你的sr在程序的别的地方出现过,产生了二义性,你将sr换成sr1或别的试试
      

  4.   

    你如何看出他没有close()掉的?
      

  5.   

    很简单,执行完Close 那句以后暂停程序
    然后我试图删除那个文件,但是失败了
    系统告诉我文件正在使用,这不就是没有 Close 吗?
    而指明 ( (StreamReader) sr ).Close()
    在这句执行后立刻就可以删除
    问题肯定是存在的,谁对重载理解比较深刻的,请解释一下,谢谢
      

  6.   

    ( (StreamReader) sr ).Close()
    执行后就一定可以删除吗?是不是操作系统缓存什么的?