Lin*_*inh 1 c# garbage-collection c#-3.0
我有一个名为MyObject的对象.它提供了一些商务操作,不包含任何数据.在源代码中,我初始化它来做一些操作:
MyObject myObj = new MyObject();
Run Code Online (Sandbox Code Playgroud)
在其他地方我初始化一个不同名称的新的:
MyObject BuObj = new MyObject();
Run Code Online (Sandbox Code Playgroud)
如果myObj没有被GC销毁,那么MyObject也是如此.所以当我初始化BuObj时,C#重用MyObject for BuObj而不是初始化一个新的?
您需要区分变量(myObj)和变量值引用的对象.一个变量不能被垃圾收集-只有对象.
但不,.NET不会重用同一个对象:你已经要求一个新对象,所以它会创建一个新对象.
(在创建空字符串方面有一个小角落案例,其中new操作符恰好返回对现有对象的引用,但您可以忽略它.)
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |