我希望多个对象能够通过一个私有字段共享引用,这样任何一个对象都可以分配给该字段,更新后的字段将被共享该引用的其他对象看到。我最初希望做的事情是这样的:
当然,您不能以这种方式使用
显然,我可以通过添加一个简单的包装类来解决这个问题。但是有没有更好的方法?是否有一种可以使用的
更新,由于大多数答案误解了我的问题。我知道
class SomeObject
{
private ref DataObject _data;
public SomeObject(ref DataObject data)
{
_data = ref data; // or something similar
}
public ChangeData(DataObject newData)
{
_data = data;
// at this point, *other* SomeObject instances that were
// created with the same reference should also have _data == newData
}
}
当然,您不能以这种方式使用
ref
: ref
仅适用于方法参数。静态字段也行不通,因为并非所有SomeObject
实例都应该引用同一个对象——相反,应该在构造函数中设置该对象。显然,我可以通过添加一个简单的包装类来解决这个问题。但是有没有更好的方法?是否有一种可以使用的
SharedReference<T>
类?更新,由于大多数答案误解了我的问题。我知道
_data
字段包含对原始DataObject
的引用。我想要另一层间接性。我想能够在一个实例中更改指向的对象,并使其他使用相同引用创建的实例选择新值。正如更新后的代码示例所示,我想分配给_data
,并有效地更改其他实例中_data
的值。