どう思いますか?log
メソッドを作成しようとしています。次の呼び出し構文を使用して、それを定義する方法を考えています。
logging(var loggerContext = new LogManager(input)){ // create a new logger context and store input
//var results = Method();
} // store results in logger context
ロギングを実装する方法??
私が頻繁に使用する別のパターンは次のようなものです。
void WithLogging(Action action)
{
// set up logging here
action();
// save results here
}
次に、次のように使用できます。
WithLogging(() =>
{
//do some things here
});
他の投稿者が指摘しているように、新しいキーワードの定義は C# でできることではありません。Boo、特にマクロが興味深いと思うかもしれません。
このような場合、コンストラクターとメソッド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
}