0

どう思いますか?logメソッドを作成しようとしています。次の呼び出し構文を使用して、それを定義する方法を考えています。

logging(var loggerContext = new LogManager(input)){ // create a new logger context and store input 

   //var results = Method();

} // store results in logger context

ロギングを実装する方法??

4

3 に答える 3

3

私が頻繁に使用する別のパターンは次のようなものです。

void WithLogging(Action action)
{
    // set up logging here
    action();
    // save results here
}

次に、次のように使用できます。

WithLogging(() =>
{
    //do some things here
});
于 2013-03-18T14:13:49.890 に答える
1

他の投稿者が指摘しているように、新しいキーワードの定義は C# でできることではありません。Boo、特にマクロが興味深いと思うかもしれません。

于 2013-03-18T14:09:30.133 に答える
0

このような場合、コンストラクターとメソッドIDisposableでカスタム ロジックを使用して実装することが理にかなっている場合があります。Dispose

class Logmanager : IDisposable
{
    public Logmanager()
    {
        this.Log("Start");
    }

    private void Log(string message)
    {
        // some logging implementation
    }

    public void Dispose()
    {
        this.Log("Finish");
    }
}

using次に、それをステートメントに入れることができます:

using (var logger = new Logmanager())
{
    // you can add something to logger here, e.g. store results
}
于 2013-03-18T14:03:14.623 に答える