2012年3月11日
摘要: 把引用对象作为参数传进一个方法,实际上是在栈上新分配了一块内存保存传入的地址。如图所示,把局部变量name传入M2方法后,栈上新开了一块内存S,用来保存"joe"的地址。其实拿string来说明不太合适,因为string类是不可变的。但是为借用CLR VIA C#中现成的图咱们就将就一下了。这时如果能够直接修改s所指向的内容的话(在C#中string是不可变类,无法演示),外部的局部变量name由于和形参s指向的是同一个对象,因此name也会改变。(图1)但是如果把s指向一个新的的string时,比如:void M2(string s){ s = "new str 阅读全文
posted @ 2012-03-11 21:43 一路转圈的雪人 阅读(1849) 评论(2) 推荐(0) 编辑