1

クラスの TraceSource を作成する人々について私が見たすべての例では、常に静的として定義されています

private static TraceSource traceSource = new TraceSource("TraceSourceApp");

なぜこれをやり直す

private readonly TraceSource _traceSource = new TraceSource("TraceSourceApp");

メリット/デメリットは?

4

1 に答える 1

1

それらは常に静的でなければなりません。

  • MS ソース コードを調べると、TraceSource は静的コレクションに配置されます。(Novel(Mono)のソースコードも同じだと思います。
  • 同じ名前のトレース ソースは、アセンブリ全体で同じように動作するため、別のものを用意する必要はありません。
  • TraceSource は、WeakReference オブジェクトを使用しているため (または静的スコープのために、収集できないガベージを作成します...静的なものには面白いガベージ コレクション ルールがあります): http://blog.perfectlytogether.com/2009/12/29/howto-solve -a-memory-leak-issue-caused-by-weakreference-objects/
于 2014-03-19T19:32:00.620 に答える