如何使用自定义调用语法“使用”或“尝试”或“捕获”或“设置”来定义方法?

时间:2013-03-18 13:53:42

标签: c# methods syntax

你怎么看? 我正在尝试创建一个log方法。我想知道如何使用以下调用语法来定义它:

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

   //var results = Method();

} // store results in logger context

如何实现日志记录??

3 个答案:

答案 0 :(得分:3)

我经常使用的替代模式是这样的:

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

然后你可以像这样使用它:

WithLogging(() =>
{
    //do some things here
});

答案 1 :(得分:1)

正如其他海报所指出的那样,定义新关键字不是你可以在C#中做的事情。您可能会发现Boo有趣,特别是宏。

答案 2 :(得分: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
}