问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
int i是在栈上分配的值类型
object o 是在堆上分配的引用类型
i的装箱操作不会影响i本身,只是在堆上新建了一个对象
o自然是在堆上创建的
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
问题比较多,一个一个问了,呵呵。
装箱操作:
int i = 123; //在堆栈上分配空间给i;
object o = (object) i;//此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。问:
将i装箱后,变量i还在原堆栈上吗?
对像o是堆栈上还是堆上创建啊?
但是在.net集成的帮助里找“装箱”所看到的示图,
意思是对象O是在栈上创的,只是指向堆上的值123.这是怎么回事啊?
取消装箱:
int i = 123; // A value type
object o= i; // Boxing
int j = (int)o; // Unboxing那么取消装箱后,在堆上的装箱变量i是不会消失了,只是在栈上多了个j值类型。
int i也不可能在堆上
object o= i; // Boxing
int j = (int)o; // Unboxing
在超出o的作用域前o还存在,并没有立即消失,但是j是被复制出来的
意思是对象O是在栈上创的,只是指向堆上的值123.这是怎么回事啊?
以下语句对变量 i 隐式应用装箱操作:object o = i;
此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。该值是赋给变量 i 的值类型值的一个副本。下图说明了两个变量 i 和 o 之间的差异。//你看这句话,说在堆栈上创建对像o!!!!装箱转换图
你只要启动.net 程序。按F1然后搜索"装箱"就可以看到图了。
http://www.telus.cn/b.html //拆箱
文章的意思是说o是一个指针,指针本身是在栈上的,他存放的是堆上的一块内存的地址,这块内存是o所指向的对象所占用的真正的内存,栈上的o只是一个指针,不是对象本身。
堆上一般放引用类型,如对象。
栈上一般放值类型。
那有没有例外呢?还有就是那个该死的装配件。
我有个老的组件,有其它组件依赖这个组件。现在我想重写这个dll.
如何在不影响其它依赖这个dll的组件呢?直接把新写的dll覆盖掉老的dll吗?
装配件到底能做什么事情?
那装配件好像不能解决组件版本冲突的问题?
Gacutil /i <assembly_path>
来分别注册两个程序集
结贴了。