2012-01-24 18 views
0

これを適切なタイトルにフレーズできませんでした。申し訳ありません。 私は静的フィールドの利点と、それが目的地に達するまで渡り続ける引数が何であるのだろうかと思います。静的変数と引数渡し

例:

XNAは、静的に保つとは対照的に、これを行うにどんな利益がある

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); 
     } 
    } 

Update関数で子関数に渡されて保持され、その枠組みにGameTimeを使用していますどこか他のものより前にルートクラスのものを更新し、その静的変数に子クラスからアクセスしてください。

私は常に引数渡しがライブラリで使用されているのを見ています。しかし、それはちょうどそれをどこか静的にするほうがはるかに「便利」に思えます。

答えて

0

この静的フィールドは、クラスのすべてのインスタンスと共有されます。静的で変更可能なものは、慎重に制御されない限り危険な混合物を提供します。すべてのインスタンスが変更を必要とすることが不可欠でない限り、誰かが手を差し伸べてそのフィールドに触れることは望ましくありません。

0

パラメータを注入すると、メソッドを簡単にテストできます。たとえば、ゲームの動作をシミュレートするために渡すことができる偽のGameTimeオブジェクトを持つことができます。