如何使用自定义调用语法定义方法.或“;try"或“;catch"或“;set"

本文关键字:quot 自定义 何使用 catch set try 调用 方法 语法 定义 | 更新日期: 2023-09-27 18:04:23

你觉得呢?我想创建一个log方法。我想知道如何定义它,使用以下调用语法:

logging(var loggerContext = new LogManager(input)){ // create a new logger context and store input 
   //var results = Method();
} // store results in logger context

如何实现日志??

如何使用自定义调用语法定义方法.或“;try"或“;catch"或“;set"

我经常使用的另一种模式是这样的:

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

那么你可以这样使用:

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

正如其他海报所指出的那样,在c#中不能定义新的关键字。您可能会发现Boo很有趣,尤其是宏。

有时在构造函数和Dispose方法中使用自定义逻辑实现IDisposable是有意义的:

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
}