Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';定时器';是一个';名称空间';但是像';类型';_C#_Timer - Fatal编程技术网

C# ';定时器';是一个';名称空间';但是像';类型';

C# ';定时器';是一个';名称空间';但是像';类型';,c#,timer,C#,Timer,我试图在C#中构建一个简单的计时器,最初,但在应用程序中两次收到两行错误: private Timer _timer; _timer = new Timer(); 最初,在我的应用程序中,我尝试 System.Timers.Timer _timer = new Timer(); 当我这样做的时候,C#没有将tick、start或stop识别为方法。最后,我将作者的代码复制并粘贴到我的应用程序中,只是想看看是否可以让计时器运行,然后反向工作,我在相同的两行上收到了相同的错误。我在网上读到的大

我试图在C#中构建一个简单的计时器,最初,但在应用程序中两次收到两行错误:

private Timer _timer;

_timer = new Timer();
最初,在我的应用程序中,我尝试

System.Timers.Timer _timer = new Timer();
当我这样做的时候,C#没有将tick、start或stop识别为方法。最后,我将作者的代码复制并粘贴到我的应用程序中,只是想看看是否可以让计时器运行,然后反向工作,我在相同的两行上收到了相同的错误。我在网上读到的大部分内容都是通过System.Timers.timer路由初始化计时器,但这会导致更多错误,而且我看不到作者在该路由之后使用的可用方法

更新:如果我使用System.Windows.Forms.Timer添加


注意:目前,我的代码是作者代码的复制和粘贴,他声称该代码有效,但没有。

以下是如何创建计时器。这是一个windows窗体计时器。您还可以创建一个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);
    }

下面是如何创建计时器。这是一个windows窗体计时器。您还可以创建一个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.Timers.Timer
定义为
System.Windows.Forms.Timer
,将其更改为
Timer\u Timer=new Timer()并添加
到文件顶部。

您正在将
系统.Timers.Timer
定义为
系统.Windows.Forms.Timer
,将其更改为
计时器\u Timer=new Timer()并添加
到文件顶部。

使用System.Windows.Forms.Timer添加
将不起作用;生成的编译器错误消息将通知您,
System.Windows.Forms.Timer
是一种类型,而不是名称空间

您需要使用System.Windows.Forms添加
(注意,没有
计时器
),或者按照deathismyfriend的建议,将每个
计时器
实例显式定义为
System.Windows.Forms.Timer

private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();

我刚刚更新到VS2010解决方案,因此如果您仍然有问题,我建议您下载、编译并运行它,然后仔细地将该代码与您自己的代码进行比较。

添加
使用System.Windows.Forms.Timer将不起作用;生成的编译器错误消息将通知您,
System.Windows.Forms.Timer
是一种类型,而不是名称空间

您需要使用System.Windows.Forms添加
(注意,没有
计时器
),或者按照deathismyfriend的建议,将每个
计时器
实例显式定义为
System.Windows.Forms.Timer

private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();

我刚刚更新了一个VS2010解决方案,因此如果您仍然有问题,我建议您下载、编译并运行它,然后仔细地将该代码与您自己的代码进行比较。

我曾经遇到过相同类型的错误。我出错的原因是我的项目的名称是Stopwatch,因此为该项目创建的名称空间也被命名为Stopwatch,编译器在我试图访问的System.Diagnostics.Stopwatch类上碰巧识别到了该名称空间

因此,当我试图创建System.Diagnostics.Stopwatch类的对象时,我得到了一个错误“Stopwatch”是一个“名称空间”,但被用作“类型”,尽管我已经使用System.Diagnostics包含了

后来我意识到编译器正在识别Stopwatch名称空间,这是我在System.Diagnostics.Stopwatch类上处理的项目的名称空间


因此,请确保您没有犯此错误。

我曾经遇到过相同类型的错误。我出错的原因是我的项目的名称是Stopwatch,因此为该项目创建的名称空间也被命名为Stopwatch,编译器在我试图访问的System.Diagnostics.Stopwatch类上碰巧识别到了该名称空间

因此,当我试图创建System.Diagnostics.Stopwatch类的对象时,我得到了一个错误“Stopwatch”是一个“名称空间”,但被用作“类型”,尽管我已经使用System.Diagnostics包含了

后来我意识到编译器正在识别Stopwatch名称空间,这是我在System.Diagnostics.Stopwatch类上处理的项目的名称空间


因此,请确保您没有犯此错误。

Timer
在作者的代码中指的是
System.Windows.Forms.Timer
,因此您的文件顶部似乎没有相同的
指令。请使用更好的命名空间名称,不要将其称为“Timer”。正如本文结尾所述:您可以阅读作者代码中的
Timer
中的差异,代码引用
System.Windows.Forms.Timer
,因此在文件顶部使用
指令似乎没有相同的
。请使用更好的命名空间名称,不要称之为“Timer”.正如本文结尾所述:如果我使用这个,当我稍后尝试“启动”计时器时,它断言对象引用未设置为对象的实例,那么您可以了解其中的差异。这实际上并没有初始化计时器,否则它会启动;开始吧。抱歉,您还需要声明计时器启动的速度。尝试上述操作。在尝试调用
tmr.Start()
之前,您需要调用
createTimer
来初始化计时器,否则
tmr
将是一个空引用。是的,应该不用说就知道了。如果我使用它,当我稍后尝试“启动”计时器时,它断言对象引用未设置为对象的实例。事实上,这并不重要