2016-09-09 7 views
0

これは他の人には明らかかもしれませんが、私は数時間無駄に取り組んできました。アプリケーション全体でグローバルint /カウンタを実装するにはどうすればよいですか?

アプリケーション全体でグローバルなint/counterを実装するにはどうすればよいですか?

私が必要とするのはちょうど1つのintです。 カウンタは、webApiからの同じJSon出力に寄与する異なるクラスのいくつかの異なるメソッドから非同期的に呼び出されます。 データには一意のIDが必要な小さなチャンクが多数あります。

希望はこれが理にかなっています。 ありがとうございました。

+0

OOPの観点からは良い考えではありませんね。この変数は何のためですか?それはストアドオブジェクトのカウンタですか?次に、これらの要素のコレクションを作成することを検討する必要があります。 – HimBromBeere

+0

これはデバッグのためのものだと思います。したがって、私はこのように行くだろう:整数のように動作するクラスを作成し、カウンタも持っていて、コードのあらゆる部分で、デバッグ時にクラスに設定するか、そうでないときに整数に設定する別の型を使用する。 – Aziuth

答えて

2
public static Global 
{ 
    private static int _counter = 0; 
    private static readonly object _lockObject = new object(); 
    public static void Increment() 
    { 
     lock (_lockObject) { 
      _counter++; 
     } 
    } 
    public static int Counter 
    { 
     get 
     { 
      lock (lockObject) { 
       return _counter; 
      } 
     } 
    } 
} 
1
public static Global 
{ 
    private static int counter = 0; 
    public static int Counter 
    { 
     get 
     { 
      return Interlocked.Incremenet(ref counter); 
     { 
    } 
} 
関連する問題