“计时器”是一个“命名空间”,但像“类型”一样使用
本文关键字:命名空间 计时器 一样 类型 一个 但像 | 更新日期: 2023-09-27 18:37:06
我正在尝试用 C# 构建一个简单的计时器,最初使用此网站作为参考,但在应用程序中收到两行错误两次:
private Timer _timer;
_timer = new Timer();
最初,在我的应用程序中,我尝试...
System.Timers.Timer _timer = new Timer();
当我这样做时,C# 无法将 tick、start 或 stop 识别为方法。 最后,我将作者的代码复制并粘贴到我的应用程序中,只是为了看看我是否可以让计时器运行然后向后工作,我在相同的两行上收到了相同的错误。 我在网上读到的大部分内容都说通过 System.Timers.Timer 路由初始化计时器,但这会导致更多错误,并且我没有看到作者使用的那些方法在该路由下可用。
更新:如果我将using System.Windows.Forms.Timer;
添加到文件顶部,我仍然会收到相同的错误消息。
注意:目前我的代码是作者代码的复制和粘贴,他断言该代码有效,但没有。
下面介绍如何创建计时器。这是一个窗口窗体计时器。您还可以创建一个Windows线程计时器。
private System.Windows.Forms.Timer tmr;
private void timerCallBack(object sender, EventArgs e)
{
}
private void createTimer()
{
tmr = new System.Windows.Forms.Timer(this.components);
tmr.Interval = 1000;
tmr.Tick += new System.EventHandler(this.timerCallBack);
}
您正在定义要System.Windows.Forms.Timer
System.Timers.Timer
,将其更改为Timer _timer = new Timer();
并将using System.Windows.Forms.Timer;
添加到文件顶部。
我曾经遇到过相同类型的错误。我错误的原因是我的项目名称是秒表,因此为该项目创建的命名空间也被命名为秒表,编译器碰巧通过我尝试访问的 System.Diagnostics.Stopwatch 类识别出它。
因此,当我尝试创建System.Diagnostics.Stopwatch类的对象时,我收到一个错误"秒表"是一个"命名空间",但即使我已经使用System.Diagnostics包含它,也像"类型"一样使用
后来我意识到编译器正在识别秒表命名空间,这是我在 System.Diagnostics.Stopwatch 类上处理的项目的命名空间。
因此,请确保您没有犯这个错误。
添加using System.Windows.Forms.Timer;
将不起作用;因为生成的编译器错误消息会通知您,System.Windows.Forms.Timer
是一种类型,而不是命名空间。
您需要添加using System.Windows.Forms;
(注意,没有Timer
)或按照死亡问题朋友的建议将每个Timer
实例显式定义为System.Windows.Forms.Timer
:
private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();
我刚刚将本文中链接的解决方案更新为VS2010解决方案,因此,如果您仍然遇到问题,我建议您下载,编译并运行它,然后仔细将该代码与您自己的代码进行比较。