作者gz ()
看板C_Sharp
标题Re: [心得] 用LockBits处理影像时..
时间Sun Dec 31 20:35:23 2006
※ 引述《euleramon (X'mas)》之铭言:
: 如果降写 image2 = new Bitmap((Image)image1); 也不会有exception..
: 我刚回去检查一下,发现好像是降的原因:
: 如果写成 image2 = (Bitmap)image1.Clone();
: 然後再将image1的fileStream关掉:myImageFileNameStream.Close();
: 如果再access影像image2,就会产生降的例外讯息
: "Cannot access a closed file"
: 所以我感觉 .net 里的
: Class a = object.Clone()
: 好像并不能完全取代
: Class a = new Class(object)
: ---
: 不晓得对不对".. 不过还是分享看看心得
这个结论有点离谱(汗...)
因为你使用了filestream来开启档案, 在image1的Clone同时也把这个file handle
复制了一份到image2.
这种reference的copy一但handle被close掉也连带会影响到image2
有书的话可以查查reference type, ICloneable, MemberwiseClone
ICloneable不是用来取代constructor的,
在使用它的同时必须了解其局限.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.146.44
1F:推 euleramon:原来如此 看来我还有很多要学习.. 感谢分享 01/01 09:35