大家帮忙看下我这个派生类有问题没有,怎么程序执行第二遍(关掉再执行)就异常,说文件被另一进程占用! public class CFileStream : System.IO.FileStream
{
public CFileStream(
string path,
FileMode mode,
FileAccess access,
FileShare share)
: base(path, mode, access, share){}
~CFileStream()
{
base.Close(); // 我已做了释放,怎么还会出现问题? }------------------------
CFileStream fs = new CFileStream( FileName,FileMode.OpenOrCreate,
FileAccess.ReadWrite,FileShare.None);
{
public CFileStream(
string path,
FileMode mode,
FileAccess access,
FileShare share)
: base(path, mode, access, share){}
~CFileStream()
{
base.Close(); // 我已做了释放,怎么还会出现问题? }------------------------
CFileStream fs = new CFileStream( FileName,FileMode.OpenOrCreate,
FileAccess.ReadWrite,FileShare.None);
解决方案 »
- 新手求救..使用C#開發CRM SYSTEM
- 截取字符串
- .net c#[有原代码] Graphics使用矩阵进行翻转后 使用Bitmap调色板设置透明背景却无效
- ThrowException怎么错误的呢?不明白。
- 怎样调整工具栏上按钮上的图片的大小
- 一直用DELPHI做开发,为了赶潮流学了一段时间.NET(C#),因项目性质不同,我做的方面用VC 的多,现在不知道学习c++还是C#??????
- 如何继承 DataRow?
- 应用程序正常初始化
- datagridview添加修改问题
- 有了c#, vc.net还有没有用?
- 类似这样的XML通过什么方式建立最方便
- 如何得知“ContextMenuStrip”是由那个控件调用的(多个同类控件共享一个ContextMenuStrip时)?谢谢!
base.Close(); // 我已做了释放,怎么还会出现问题? 再顶!
楼主是C++程序员吧?
楼上几位说得都没错的
C++也必须要执行了 delete 操作,析构函数才会被调用,因为C++是程序中控制何时删除对象。
而在C#中是没有 delete 操作的,因为在C#中是由系统自动删除无用的对象的,所以你的析构函数不知道什么时候才会被调用。不信的话,你可以在 base.Close(); 这条语句上加个断点调试一下。