我开始使用C# Interactive,并且我可以浏览和探索一些API功能,就像我使用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
编写更多代码)?
答案 0 :(得分:21)
是的,要输出已计算表达式的结果,请不要在末尾添加分号。在您的示例中,而不是:
string.Format("{0,15}", 10m);
这样做:
string.Format("{0,15}", 10m)
答案 1 :(得分:8)
当你完成一个语句(例如以;
结尾)时,你必须在声明变量时,你不会得到任何输出,因为它是应该只有副作用。
当您使用表达式结束时(例如,不以;
结尾),您将获得该表达式的结果。解决方法是:
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 + ↑来选择之前的一个条目。
答案 2 :(得分:1)
我知道这为时已晚,但任何正在寻找类似问题答案的人。如果您想在 C# 交互式窗口中运行 for
循环并打印值,您可以使用 Print()
方法:
string Characters = "Hello World!";
> foreach (char _Char in Characters)
. {
. Print(_Char);
. }
'H'
'e'
'l'
'l'
'o'
' '
'W'
'o'
'r'
'l'
'd'
'!'