C#从对象数组元素重新启动秒表

C#从对象数组元素重新启动秒表,c#,arrays,stopwatch,C#,Arrays,Stopwatch,我有一个秒表存储在一个对象数组中,我想重新启动它。 我使用的是一个对象数组,因为我的元素类型总是在变化,这意味着对象[1]有时可以是int,有时是double,有时是bool等等,所以我不确定是否可以使用类来实现这一点 那么为什么秒表不能在下面的代码中重新启动呢 public static object[] test() { object[] obj = new object[4]; obj[0] = true; //bool; o

我有一个秒表存储在一个对象数组中,我想重新启动它。 我使用的是一个对象数组,因为我的元素类型总是在变化,这意味着对象[1]有时可以是int,有时是double,有时是bool等等,所以我不确定是否可以使用类来实现这一点

那么为什么秒表不能在下面的代码中重新启动呢

public static object[] test()
    {
        object[] obj = new object[4];

        obj[0] = true;    //bool;
        obj[1] = "test";   //string;
        obj[2] = 12;   //int;
        obj[3] = System.Diagnostics.Stopwatch.StartNew();

        return obj;
    }

    object[] testobject = new object[4];
    testobject = test();
    Thread.Sleep(1000);
    Console.WriteLine(((Stopwatch)testobject[3]).Elapsed.TotalMilliseconds);   
    ((Stopwatch)testobject[3]).Restart();   //Reset();
    Console.WriteLine(((Stopwatch)testobject[3]).Elapsed.TotalMilliseconds); 

应该这样。这是实际代码吗?除了将较低的代码块移到主方法中并添加必要的using语句外,此代码与全新控制台项目中的代码一样工作正常。关闭时不可复制。在给出的信息中,还发生了一些不明显的事情。这是实际的代码。我只有一个if语句,它将检查对象[0]是否为真,然后重新启动秒表。在if语句中,我有一个控制台写入,它证明if语句处于状态,但秒表不会在if语句中重新启动。但秒表在if语句外重新启动。。。我不知道怎么了,我找到了解决办法。我将秒表声明为一个全局变量,然后在任意位置处理它,而不是将它放在数组中。然而,这并没有回答上面的问题,但是由于给出了解决方案,您可以关闭此线程。