我正在做类似的事情
{% for item in coursename %}
<p>{{ item }}</p>
{% endfor %]
在interface ICalculable
{
public int Calculate(int input);
}
BigMethod(ICalculable calculable)
{
Console.Write("Sequence:");
for (int i = 0; i < 3; i++)
{
int result = calculable.Calculate(i);
Console.Write($" {i}:{result}");
}
}
内部运行的任何代码都不应写入控制台。
即使我传递了一个实例,我也不希望传递给ICalculable#Calculate
的{{1}}能够中断ICalculable
的控制台输出
BigMethod
在控制台上看到的输出应该是
BigMethod
class MyCalculable : ICalculable
{
public int Calculate(int input)
{
Console.Write("ruin output");
return 0;
}
}
应该可以使对Sequence: 0:0 1:0 2:0
的呼叫静音。
有办法吗?
我已经考虑过使用BigMethod
,但我希望Calculate
的输出可流式传输。
答案 0 :(得分:1)
您可以使用Console.SetOut
和Console.Out
public static void Main()
{
Console.Write("Hello ");
// current output
var current = Console.Out;
// change the output to somewhere else
Console.SetOut(new StreamWriter(Stream.Null));
Run();
// revert back
Console.SetOut(current);
Console.WriteLine("there");
}
private static void Run()
{
Console.Write("Doctor, please keep touching me ");
}
输出
Hello there
但是,这似乎有点可疑 / XY ,并且如果您正在执行线程处理,则很容易产生怪异的结果。