Nei*_*ir0 0 c# java garbage-collection
即使它有引用(c#或Java),我如何删除对象?
例如:
void Main()
{
var f = new Foo();
var person = f.GetPerson();
}
public class Foo
{
private object _person;
public Foo()
{
_person = new object();
}
public object GetPerson()
{
return _person;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从内存中删除_person我该怎么办?
Bri*_*new 11
你不能简单地说.
如果你想要实现类似的东西,你可以Person通过代理引用你的,并传递代理.因此,您可以将基础Person引用设置为null(只是指示该对象可用于删除 - 不强制删除它),但客户端仍将包含代理引用.
您可能想要查看相关的Java SoftReferences和WeakReferences,并且可以在垃圾回收周期中删除对象,尽管其他地方可以使用弱/软引用.