我有一个对象,我需要在游戏循环中的每次更新中更新数据(在 C# 中)。将对象通过引用传递到执行更新循环的对象的构造函数中是否更好,以便引用不断具有最新的对象,
还是我应该将它作为参数正常传递给 Update 方法(每次更新都称为)?
所以这作为一个构造函数:
public UpdatingObject(ref DataObject dataObject)
或者这是一个更新循环头(默认值传递):
public void Update(DataObject dataObject)
我有一个对象,我需要在游戏循环中的每次更新中更新数据(在 C# 中)。将对象通过引用传递到执行更新循环的对象的构造函数中是否更好,以便引用不断具有最新的对象,
还是我应该将它作为参数正常传递给 Update 方法(每次更新都称为)?
所以这作为一个构造函数:
public UpdatingObject(ref DataObject dataObject)
或者这是一个更新循环头(默认值传递):
public void Update(DataObject dataObject)
在需要时通过引用传递,即,当您需要重新分配引用以引用不同的对象时:
void ByRef(ref object o)
{
o = new object();
}
如果方法保证设置,o
则将其作为out
参数传递。
默认语义(通过引用的副本传递)适合大多数需求,因为您通常只修改对象上的字段/属性。
如果参数是值类型,那么您需要使用ref
以调用者可以看到的方式改变参数。
我的问题是;你为什么要改变构造函数的参数?这对我来说似乎有点奇怪。
必要时通过引用传递。
但是,您能否在 DataObject 类中定义更新方法并定义另一个复合类来执行更新?类似的东西。
public class DataObject
{
public void Update()
{
// define your update method.
}
}