2012-01-24 195 views
0

无法将此变为正确的标题,抱歉。 我想知道静态字段的好处是什么,而不是直到它到达目标为止。静态变量vs参数传递

例子:

XNA使用GameTime其框架,这是保持被传递到子功能,在更新功能

protected override void Update(GameTime gameTime) 
    { 
     base.Update(gameTime); 
     world.Update(gameTime); 
    } 

    //in World class 
    public void Update(GameTime gametime) 
    { 
     //draw all game objects 
     for (int i = 0; i < entities.Count; i++) 
     { 
      entities[i].Update(gametime); 
     } 
    } 

有没有这个产品的好处,而不是保持静态可变的游戏时间,在其他任何地方更新根类,并从子类访问该静态变量。

我总是看到在库中使用的参数。但是让它在某个地方是静态的,似乎更“方便”。

回答

0

该静态字段与该类的所有实例共享。除非仔细控制,否则静态和可变提供危险的混合物。除非所有实例都需要更改,否则您不希望任何人伸出手触摸该字段。

0

当您注入参数时,您的方法可以更容易测试。例如,你可以有一个假的GameTime对象,你可以通过它来模拟它的行为。