通常,在調查我正在開發的一些代碼時,我會在這裏或那裏拋出一個Console.WriteLine
,程序運行時也會看到一個值。 Console.WriteLine
的缺點是我必須在括號中包裝表達式,並可能會將其分開。例如,給出以下表達式:內聯顯示方法對快速檢查有用
a().b().c();
假設我想打印b()
的值。我將不得不這樣做:
var val = a().b();
Console.WriteLine(val);
val.c();
這是很多編輯只是爲了看到一個值。
我的解決辦法一直是使用這種擴展方法:
public static T Disp<T>(this T obj)
{
Console.WriteLine(obj);
return obj;
}
我可以注入的任何方法鏈Disp
一個呼叫,而不改變整體表達式的值。要查看b()
結果在上面的例子中,我會做:
a.().b().Disp().c()
我的問題是,有沒有已經像.NET Disp
一些方法?有沒有更好的方法來實施Disp
?這種技術有缺點嗎?
更新2012-02-09
我還添加一個重載的版本,它接受的格式的字符串:
public static T Disp<T>(this T obj, string format)
{
Console.WriteLine(string.Format(format, obj));
return obj;
}
呼叫良好。不過,我可能仍然有'Disp'作爲速記符號來定義'Tap'。 – dharmatech 2012-02-09 19:03:53