1

関数の複雑さを隠して、関数呼び出しを簡単にしようとしています。たとえばLog(string msg)、改行を使用してテキスト ボックス コントロールにテキスト メッセージを書き込む関数と、マルチスレッド用の Invoke() です。Log(string.Format("..{0}..", x, ...))今、私は のバージョンを使用して作成する必要を避けたいと思ってLog(string format, params object[] args)います。これはうまく機能します。

この Log() を、ロギングを行う必要がある別の関数に引数として渡す必要があるまで:

AnotherFunction(Action<string, object[]> Log)
{
  Log("formatstring", new object[] { value1, value2, ...});
}

私の質問: new object[]Log() を呼び出さなければならないたびに、構造をコーディングする必要がないようにするにはどうすればよいですか?

4

2 に答える 2

1

インターフェイスはよりきれいになります。また、既存のロギング フレームワーク (log4net や NLog など) の使用を検討し、テキスト ボックスに出力を書き込むターゲットを実装 (または既存のものを使用) することもできます。

于 2013-04-22T09:05:41.373 に答える