Часто, исследуя какой-то код, который я разрабатываю, я добавляю 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()
Мой вопрос: есть ли уже какой-нибудь метод, например Disp
в .NET?Есть ли лучший способ реализовать Disp
?Есть ли недостатки у этой техники?
обновление 2012-02-09
Я также добавил перегруженную версию, которая принимает строку формата:
public static T Disp<T>(this T obj, string format)
{
Console.WriteLine(string.Format(format, obj));
return obj;
}