A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 面朝大海,春暖 中级黑马   /  2013-10-12 22:06  /  1940 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 面朝大海,春暖 于 2013-10-13 08:53 编辑

Image imageT = Image.FromFile(fileName);
image = imageT;
imageT.Dispose();

imageT是在函数中定义的局部变量,image是个全局变量,现在我对imageT进行Dispose操作后发现image为NULL了,问题来了,为什么image也被清空了?请高手解惑?

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 guo329838627 于 2013-10-12 22:34 编辑

亲,Dispose()方法就把资源给释放掉了,肯定为空了呀!额,还有,你的image是?
回复 使用道具 举报
类是引用类型,不是值类型。
回复 使用道具 举报 1 0
image是指向  imageT指向的值,当imageT被销毁时,image指向的变为空(NULL)

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
Image类为引用类型,赋值是将两个对象指向同一个内存地址。
  1. static void Main(string[] args)
  2.         {
  3.             int[] intArr = new int[] { 1, 2, 3 };
  4.             int[] newArr = intArr;  //将原数组赋值给新数组
  5.             intArr[0] = 8;  //改变原数组第1个数的值
  6.             Console.WriteLine("intArr[0]={0},newArr[0]={1}",intArr[0],newArr[0]);//输出两个数组的第一个数都是8
  7.             
  8.             Console.ReadKey();
  9.         }
复制代码
希望能帮到你。。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马