0

我有一个对象,我需要在游戏循环中的每次更新中更新数据(在 C# 中)。将对象通过引用传递到执行更新循环的对象的构造函数中是否更好,以便引用不断具有最新的对象,

还是我应该将它作为参数正常传递给 Update 方法(每次更新都称为)?

所以这作为一个构造函数:

public UpdatingObject(ref DataObject dataObject)

或者这是一个更新循环头(默认值传递):

public void Update(DataObject dataObject)
4

2 回答 2

2

在需要时通过引用传递,即,当您需要重新分配引用以引用不同的对象时:

void ByRef(ref object o)
{
    o = new object();
}

如果方法保证设置,o则将其作为out参数传递。

默认语义(通过引用的副本传递)适合大多数需求,因为您通常只修改对象上的字段/属性。

如果参数是值类型,那么您需要使用ref以调用者可以看到的方式改变参数。

我的问题是;你为什么要改变构造函数的参数?这对我来说似乎有点奇怪。

于 2012-07-05T02:51:33.490 回答
2

必要时通过引用传递。

但是,您能否在 DataObject 类中定义更新方法并定义另一个复合类来执行更新?类似的东西。

public class DataObject 
{
   public void Update()
   { 
     // define your update method.
   }
}
于 2012-07-05T03:00:41.207 回答