所以我正在阅读Jon Skeet关于C#中参数传递的文章,他做了下面的例子来解释引用类型是如何工作的,但是我无法将它包裹起来。需要关于参考类型的一些说明
StringBuilder first = new StringBuilder();
first.Append("hello");
StringBuilder second = first;
first.Append(" world");
first = new StringBuilder("goodbye");
Console.WriteLine(first); // Prints goodbye
Console.WriteLine(second); // Still prints hello world
当我们分配second
变量的值,我们只是值设置为StringBuilder
对象的引用?
而且作为奖金的问题,如果我们要改变second
变量到别的参考(将其设置为例如空值),将在参考第一StringBuilder
对象则是无法弥补的?或者有没有办法检索某个类型的所有创建的对象?
你的奖金问题不是很清楚。你是说如果你愿意的话:'StringBuilder second = first; second = null;'例如? –
正是这正是我的意思,我会编辑澄清。 –