将var重置为其原始状态

时间:2019-10-19 00:44:20

标签: c# class variables structure

不确定如何解释这种情况,因此我将在使用示例的同时尽力而为。

所以我有一个主班,

Main.cs


//Code

class Main {
    public Run() {
        while(true)
        {
            Minor start = new Minor();
            start.Run();
        }
    }
}

次要课程

Minor.cs

//Code

class Minor {
    public Run() {
        Test.hi += 1;
        Console.WriteLine(Test.hi);
    }
}

测试类,

Test.cs

//Code

class Test {
    public int hi = 0;
}

在运行上面的示例时,每次循环都会增加Time.cs中的整数。因此输出将是3次。

1
2
3

但是如果我将public int hi = 0放在Minor.cs里面,如下所示

Minor.cs

//Code

class Minor {

    public int hi = 0;

    public Run() {
        hi += 1;
        Console.WriteLine(Test.hi);
    }

}

由于每个循环都会创建一个新的Minor实例,因此输出始终为1。现在,我知道我可以简单地在{{1 }},但我有多个在循环期间修改的变量/整数/字符串,但是在下一个循环中需要为默认值。

是否可以通过编程方式将所有类以编程方式重置为Test.cs以外的默认状态,或者可以将所有其他Minor.cs继承到Main.cs中,以便在{ {1}}被创建了,它们的新实例也是吗?

2 个答案:

答案 0 :(得分:0)

我可能会误解您的约束,但是如果您想重置一个类中的所有变量,我会考虑向该类添加一个Reset()方法,该方法就是这样:将所有属性设置为默认值一对一。

答案 1 :(得分:0)

您自己说过,解决方案是创建一个新的Test对象。

public Run() {
        var test = new Test():
        Console.WriteLine(Test.hi);// I'm assuming this should be  'test.hi'
    }