2012-01-24 143 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對象,你可以通過它來模擬它的行爲。