C#对象和内存管理

dim*_*s93 1 c# object

假设我有以下代码,其中Car类只有1个属性: String modelname

Car c = new Car("toyota");
Car c1 = c;
Car c2 = c;
Car c3 = c;
Car c4 = c;
Car c5 = c;
Run Code Online (Sandbox Code Playgroud)

这是否每次都会制作一张新车?所以在记忆中会有一个新的"丰田"字符串5倍以上?或者"丰田"字符串只会在内存中一次?

编辑:添加此相关链接,以防您遇到与我相同的问题,我认为这有助于 数组或列表默认通过c#中的引用传递?

adv*_*v12 6

不,"toyota"字符串只在内存中存在一次,因为只有一个Car对象,有6个引用指向它.

  • 因为`c`是引用类型的变量.你正在制作第二个"Car"并将它分配给`c`,而`c1`-`c5`仍然指向原来的'Car`. (2认同)