Console.Title c# 当前时间
Console.Title c# current time
我正在用 C# 编写俄罗斯方块程序,我想在控制台的标题中表示剩余时间。
为什么不能编译?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Diagnostics;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
do
{
Console.Title("Elapsed time:" + stopwatch.Elapsed.TotalSeconds);`
} while (true);
stopwatch.Stop();
Console.ReadKey();
}
}
}
Error 1 Non-invocable member 'System.Console.Title' cannot be used like a method. C:\Users\Bence\Documents\C#\ConsoleApplication8\ConsoleApplication8\Program.cs 19 25 ConsoleApplication8
嗯,就像错误信息所说的那样,Console.Title
is not a method, but a property,所以必须使用:
Console.Title = "Elapsed time:" + stopwatch.Elapsed.TotalSeconds;
您应该更仔细地阅读编译器输出。另请注意,循环后的代码将永远不会到达(编译器也会告诉您),因此您的循环将永远运行。
一些进一步的说明:
- 您可以格式化数字,使标题看起来不像
Elapsed time:1,3242346238
,请参阅 Standard Numeric Format Strings。
示例:
Console.Title = String.Format("Elapsed time: {0:N}", stopwatch.Elapsed.TotalSeconds);
- 您可能会自己发现它,但是 运行 如此紧凑的循环将消耗 100% CPU 使用率(DrKoch 已经在评论中告诉您了)。
- 使用控制台进行复杂的图形输出很糟糕。为什么不使用游戏引擎? (甚至 WinForms 会更好)
您处于 while 循环中,而不是 tick 事件。
还有
Console.Title = "Elapsed time:" + stopwatch.Elapsed.TotalSeconds;
我正在用 C# 编写俄罗斯方块程序,我想在控制台的标题中表示剩余时间。
为什么不能编译?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Diagnostics;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
do
{
Console.Title("Elapsed time:" + stopwatch.Elapsed.TotalSeconds);`
} while (true);
stopwatch.Stop();
Console.ReadKey();
}
}
}
Error 1 Non-invocable member 'System.Console.Title' cannot be used like a method. C:\Users\Bence\Documents\C#\ConsoleApplication8\ConsoleApplication8\Program.cs 19 25 ConsoleApplication8
嗯,就像错误信息所说的那样,Console.Title
is not a method, but a property,所以必须使用:
Console.Title = "Elapsed time:" + stopwatch.Elapsed.TotalSeconds;
您应该更仔细地阅读编译器输出。另请注意,循环后的代码将永远不会到达(编译器也会告诉您),因此您的循环将永远运行。
一些进一步的说明:
- 您可以格式化数字,使标题看起来不像
Elapsed time:1,3242346238
,请参阅 Standard Numeric Format Strings。 示例:
Console.Title = String.Format("Elapsed time: {0:N}", stopwatch.Elapsed.TotalSeconds);
- 您可能会自己发现它,但是 运行 如此紧凑的循环将消耗 100% CPU 使用率(DrKoch 已经在评论中告诉您了)。
- 使用控制台进行复杂的图形输出很糟糕。为什么不使用游戏引擎? (甚至 WinForms 会更好)
您处于 while 循环中,而不是 tick 事件。
还有
Console.Title = "Elapsed time:" + stopwatch.Elapsed.TotalSeconds;