所以我想在我的代码中添加一个计时器,使我的vehCount每1.5秒增加1。



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;

namespace AssignmentCA
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Vehicle.vehCount);
            Console.ReadLine();
        }
    class Vehicle
        {
        public static int vehCount = 0;
        private void spawnVehicle()
            {
                Timer tm = new Timer();
                tm.Interval = 1500;
                tm.Elapsed += timerTick;
                vehCount++;
                tm.Start();
            }
            private void timerTick(object sender, EventArgs e)
            {
                vehCount++;
            }
        }
    }
}





在运行之前和运行时从未使用过计时器,但是我得到0,但是它永远不会增加1。我如何实现这一点。

最佳答案

我不太清楚您想做什么,但是您根本没有调用spawnVehicle方法。

这是您所发布内容的解决方案。看看在Vehicle类的静态构造函数上调用了spawnVehicle!为了从静态构造函数调用spawnVehicle,它也必须是静态的。

class Vehicle
{
    static Vehicle()
    {
        spawnVehicle();
    }

    public static int vehCount = 0;
    static void spawnVehicle()
    {
        Timer tm = new Timer();
        tm.Interval = 1500;
        tm.Elapsed += (s, e) => vehCount++;
        vehCount++;
        tm.Start();
    }
}

10-08 14:06