对象不能迁移到的对象引用
本文关键字:对象引用 迁移 不能 对象 | 更新日期: 2023-09-27 17:52:47
在c#中,我想知道是否有任何方法可以使引用不允许其引用迁移到引用。下面是一些FAKE c#代码来说明我的意思:
class foo {}
class bar
{
public locked foo Foo; //of course locked doesn't actually exist
}
void main()
{
foo myFoo = new foo();
bar myBar == new bar();
myBar.Foo = myFoo;
myFoo = null
if (myBar.Foo == null)
{
println("foo = null");
}
}
//will print "foo = null"
显然这不会编译,当你删除foo时,它只会迁移到myBar。Foo,我不想这样
myBar.Foo = myFoo;
myFoo = null
执行myFoo = null
不会使myBar.Foo
为空。它仍然会引用旧的对象。
字段在chsarp中可以是ref
,并且没有绕过这一点。更好的解释可以在这里找到-我如何通过"参考"分配;到c#中的类字段?
您似乎想要的是不可能的,至少是直接的。我将在这里为其他读者描述我认为你想要的东西,因为术语"迁移"是不标准的,令人困惑的。
让我们描述myBar.Foo = myFoo
在做什么。它说myBar
上名为Foo
的存储位置指向当前占用本地myFoo
存储位置的对象。您似乎想要的是myBar.Foo
作为存储位置myFoo
的别名(即另一个名称)。