Можно ли автоматически выводить значение в C# Interactive (REPL), как это делает Immediate?
Я начал использовать C# Interactive, и мне нравится тот факт, что я могу просматривать и изучать некоторые функции API, как я делаю с Immediate
без необходимости запускать и отлаживать мою программу.
Проблема в том, что он не выводит информацию, как Immediate, если я не делаю команду с именем переменной:
> string.Format("{0,15}", 10m); //hit enter, here there is no output
> var a = string.Format("{0,15}", 10m); //hit enter so...
> a // hit enter and...
" 10" //...here the value is shown
>
Есть ли способ сделать C# Interactive
выводить значения в каждой оценке, как Immediate
делает (и без писать больше кода для этого, как Console.Write
)?
3 ответа
Да, для вывода результата вычисленного выражения просто не ставьте точку с запятой в конце. В вашем примере вместо этого:
string.Format("{0,15}", 10m);
сделай это:
string.Format("{0,15}", 10m)
Когда вы закончите с утверждением (например, заканчивая ;
), что необходимо при объявлении переменных, вы не получите никакого вывода, так как он должен иметь только побочные эффекты.
Когда вы заканчиваете с выражением (например, не заканчивается ;
), вы получите результат этого выражения. Обходной путь:
var a = string.Format("{0,15}", 10m); a
уведомление a
в качестве выражения в конце вы получите его значение.
Лично для многострочных фрагментов, которые я хочу проверить, у меня обычно есть res
переменная:
object res;
// code where I set res = something;
using (var reader = new System.IO.StringReader("test"))
{
res = reader.ReadToEnd();
}
res
Затраты на печать происходят один раз за сеанс Visual Studio, но затем я просто использую Alt+↑, чтобы выбрать одну из предыдущих записей.
Я знаю, что это слишком поздно, но всем, кто ищет ответ на аналогичный вопрос. На всякий случай, если вы захотите запустить
for
цикл и печать значений в интерактивном окне C #, вы можете использовать
Print()
метод:
string Characters = "Hello World!";
> foreach (char _Char in Characters)
. {
. Print(_Char);
. }
'H'
'e'
'l'
'l'
'o'
' '
'W'
'o'
'r'
'l'
'd'
'!'